Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Snake - Una buona programmazione

Snake

Sommario | Admin | Forum | Bugs | Todo | Files

Avatar
Zizzius (Honoris User)
Guru


Messaggi: 675
Iscritto: 28/02/2005

Segnala al moderatore
Postato alle 15:56
Giovedì, 30/06/2005
Apprezzo i files che avete caricato. Ma voglio fare il punto su come procedere in nome di una buona programmazione.

Innanzitutto, voglio chiarire che la release che ho caricato qualche giorno fa era un abbozzo giusto per comunicarvi in pratica la mia idea circa il movimento di Snake.

Dovrete scusarmi, ma io sono talmente contrario alla "filosofia" del GOTO da non saper nemmeno usare questa istruzione. Il suo utilizzo complica infatti la messa a punto del software ed ? stato infatti ?bannato? dalla programmazione negli ultimi trent?anni.

Punto numero due: occorre procedere senza fretta, affrontando un nuovo argomento solo quando quello in corso ? stato sviluppato e testato.
Quindi, mi sembra troppo precoce occuparsi gi? da ora di posizionare i tesori, calcolare il punteggio, ecc.
Il primo passo da compiere ? stabilire il contesto/la grafica/le dimensioni di Snake e dello sfondo, ovvero l?apertura del programma (vedi TODO).
Successivamente, ? opportuno mettere a punto il movimento di Snake, che si pu? suddividere nei seguenti passi:
1) movimento infinito (cio?, Snake non si ferma pi?) in una sola direzione (in quella predefinita al momento del disegno di Snake);
2) Snake si ferma quando la testa urta contro una delle pareti laterali (REPEAT ... UNTIL perdita; );
3) movimento nelle quattro direzioni dello schermo;
4) Snake si ferma pure quando la testa urta contro il corpo stesso di Snake;
5) (passo fondamentale e pi? difficile da implementare, rispetto ai precedenti) ottimizzare la cancellazione della coda e la scrittura della testa quando la testa di Snake passa vicino al bordo dello schermo o al corpo stesso di Snake.

PM Quote
Avatar
radio (Ex-Member)
Expert


Messaggi: 327
Iscritto: 03/03/2005

Segnala al moderatore
Postato alle 17:07
Lunedì, 04/07/2005
scusa ma non ho capito una cosa: io mi sono preso
"Stop se urta una parete" perch? sembrava facile, poi ho iniziato a scrivere ma poi devo inviare una alpha con solo la quella procedura?:-?

PM Quote
Avatar
Zizzius (Honoris User)
Guru


Messaggi: 675
Iscritto: 28/02/2005

Segnala al moderatore
Postato alle 0:28
Martedì, 05/07/2005
Certo, puoi inviare la sola procedura.

Sarebbe buona cosa se tu stesso testassi la procedura sulla mia versione alpha 1.0.01 (magari integrata con la versione 1.0.04).
Per integrare la procedura in questione con il resto del codice, io avevo pensato a una struttura del tipo:

REPEAT
REPEAT
... (* cancellazione coda, trasferimento valori, scrittura testa *)
UNTIL perdita OR keyPressed;
movimento:=readKey;
UNTIL perdita;


ma ancora non mi convince. Se hai un'idea migliore...

PM Quote