Apro questa nuova discussione nel tentativo di illustrare dei concetti basilari della programmazione sfruttando l'idea di '6587gianluca' che si stà prodigando a realizzare un gioco. Per sua gentile concessione utilizzo le sue immagini.
Non spiegherò quello che si trova sui manuali di mshell.(devo finire di leggerli pure io...)
Leggete anche l'eccellente "Miniguida per Iniziare" di 'masmil1988'
Non sono un insegnante...conosco qualcosa...e molto non sò, correrò il rischio di trasmettere anche qualche concetto sbagliato.
Spero che altri verifichino l'esattezza di quel che si dirà intervenendo con correzioni per il bene di tutti, Grazie!.
Nota: si tratta di un colloquio tra me e il mio alter ego che per dipiù è convinto di avere personalità multiple!!.
Per il corretto funzionamento dovete installare nella MemoryCard queste due immagini:
Nella Directory "E:\Images\" immagine donkeysfondo.png
donkeysfondo.png (72,19K)
Numero di downloads: 8e barile.png
barile.png (999bytes)
Numero di downloads: 3
Sono immagini per cellulari con schermo 240x320, per i possessori di cellulari con schermo 320x240
all'inizio dovranno vedere solo 3/4 dell'immagine.
Torniamo a noi:
L'idea è di far cadere e rotolare un barile lungo dei piani. Si pone un barile sul piano più alto, cade, rotola, cade,rotola così percorre tutto lo scenario del gioco "DonkeyKong", quando esce di scena ne riparte un altro. L'immagine dovrebbero essere sufficiente per capire.
donkeysfond_1.png (124,94K)
Numero di downloads: 4
La prima regola è avere le idee chiare di cosa si vuol realizzare!.
Ovvero conoscere il problema e come si vuol risolverlo (a grandi linee).
Allora il programma sarà così:
- mostra "donkeysfondo.png" (l'immagine di fondo a pieno schermo)
- mostra il barile in alto a destra pronto a cadere "barile.png"
Qui ci sono due azioni che si ripetono parecchie volte una per ogni piano: - il barile cade sul piano sottostante
- il barile rotola sino al lato opposto del piano
- Ultima cosa, quando il barile giunge all'estremità dell'ultimo piano esce di scena e riappare al punto 1) pronto a ripetere la sequenza.
Tutto chiaro?. Siii!(alter ego).
Ecco il sorgente:
use graph;graph.size(240,320);graph.full(true);sfondo=graph.icon("e:\\Images\\donkeysfondo.png");
barile=graph.icon("e:\\Images\\barile.png");graph.put(0,0,sfondo);graph.put(214,97,barile);graph.show();
sleep(10);graph.put(0,0,sfondo);graph.put(214,98,barile);graph.show();sleep(10);
graph.put(0,0,sfondo);graph.put(214,99,barile);graph.show();sleep(10);graph.put
(0,0,sfondo);graph.put(214,100,barile);graph.show();sleep(10);graph.put(0,0,
sfondo);graph.put(214,101,barile);graph.show();sleep(10);graph.put(0,0,sfondo);
graph.put(214,102,barile);graph.show();sleep(10);graph.put(0,0,sfondo);graph.put
(214,103,barile);graph.show();sleep(10);graph.put(0,0,sfondo);graph.put(214,104,
barile);graph.show();sleep(10);graph.put(0,0,sfondo);graph.put(214,105,barile);
graph.show();sleep(10);graph.put(0,0,sfondo);graph.put(214,106,barile);graph.
show();sleep(10);graph.put(0,0,sfondo);graph.put(214,107,barile);graph.show();
sleep(10);graph.put(0,0,sfondo);graph.put(214,108,barile);graph.show();sleep
(10);graph.put(0,0,sfondo);graph.put(214,109,barile);graph.show();sleep(10);
graph.put(0,0,sfondo);graph.put(214,110,barile);graph.show();sleep(10);graph.
put(0,0,sfondo);graph.put(214,111,barile);graph.show();sleep(10);graph.put(0,0,
sfondo);graph.put(214,112,barile);graph.show();sleep(10);graph.put(0,0,sfondo);
graph.put(214,113,barile);graph.show();sleep(10);graph.put(0,0,sfondo);graph.
put(214,114,barile);graph.show();sleep(10);graph.put(0,0,sfondo);graph.put(214,
115,barile);graph.show();sleep(10);graph.put(0,0,sfondo);graph.put(214,116,
barile);graph.show();sleep(10);graph.put(0,0,sfondo);graph.put(214,117,barile);
graph.show();sleep(10);graph.put(0,0,sfondo);
...... Fermo! fermo!ma cosè sta roba qua?.
Il programma!...ci sono molte altre righe che devo scrivere per completarlo.....
E' PAZZO!...presto chiudete la discussione e chiamate l'ospedale....
Vi assicuro che il sorgente qui riportato salvato in un file testuale con un nome di fantasia e estensione obbligatoria .m viene aperto dall'interprete mShell, lo legge e lo esegue tutto e non si lamenta! si vede il barile cadere per qualche piano, funziona!!.
Dk0.txt (31,71K)
Numero di downloads: 20
Ma non si capisce niente! e come fa l'interprete mShell a capirci qualcosa?? son tutte parole appiccicate!.
Allora possiamo immaginare che l'interprete quando esegue un programma su file fa quanto segue:
- Apre il programma da eseguire (Il programma deve essere scritto come testo)
- Parte dal primo carattere in alto a sinistra legge la prima istruzione,
verifica che sia scritta correttamente e la esegue, poi legge la seconda e cosi via,
scorre tutto esattamente come si legge un libro.
Man mano che compie questa azione interpreta e esegue le istruzioni una dopo l'altra
fino al termine del file e con esso termina anche il programma.
Anche se non è esattamente così.
Ci sono delle inesattezze usate per facilitare la comprensione di come si svolge il tutto. mShell è un interprete di P-Code questo significa che prima legge tutto il programma e lo trascrive in una forma quasi totalmente incomprensibile per noi ma estremamente più veloce per lui da leggere e eseguire quest'altro lo conserva in memoria. Diciamo che fa fatica a leggere la nostra calligrafia, e per essere più veloce se lo trascrive nella sua. Spesso dovremo crearci un illusione mentale di come avvengono certe cose per poterle capire facilmente senza impazzire, lo dimostra il fatto che nessun programmatore genio che sia si mette a scrivere nel linguaggio binario, l'unico linguaggio che il microprocessore del vostro cellulare è in grado di usare. [color="blue"] 0011110100111110101010001110010 0111001010100001010111010101110 0100101010101011111011110111001 0100111111001010101111010001111 [/color] E' palese a tutti quel che cé scritto! anche un bambino lo capirebbe!, non sono molto daccordo sul "00110001000111" ma comunque....
Qui si capisce che siamo noi umani ad avere la necessità di una scrittura del programma che sia in grado
di farci capire cosa compie.
Dobbiamo poter scrivere in un modo tale, che sia il programma stesso a spiegarsi.
Pazzesco!!! mi stai dicendo che quel ammasso alfanumerico può diventare un programma che si spiega??
Vuoi dire che il programma mi insegna come funziona??
Si! Ora te lo riscrivo....
Ok! questo è il sorgente:
use graph;
graph.size(240,320);
graph.full(true);
sfondo=graph.icon("e:\\Images\\donkeysfondo.png");
barile=graph.icon("e:\\Images\\barile.png");
graph.put(0,0,sfondo);
graph.put(214,97,barile);
graph.show();sleep(10);
graph.put(0,0,sfondo);
graph.put(214,98,barile);
graph.show();sleep(10);
graph.put(0,0,sfondo);
graph.put(214,99,barile);
graph.show();sleep(10);
graph.put(0,0,sfondo);
graph.put(214,100,barile);
graph.show();sleep(10);
graph.put(0,0,sfondo);
graph.put(214,101,barile);
graph.show();sleep(10);
graph.put(0,0,sfondo);
graph.put(214,102,barile);
graph.show();sleep(10);
graph.put(0,0,sfondo);
graph.put(214,103,barile);
graph.show();sleep(10);
graph.put(0,0,sfondo);
graph.put(214,104,barile);
graph.show();sleep(10);
Dk1.txt (33,06K)
Numero di downloads: 12
...... Fermo! fermo!
Ma?..dovevo scrivere ancora 60 centimetri di programma e il barile cade di un piano!
e se aggiungo altri 6 metri di programma vedrai il barile cadere fino in fondo!
e se poi aggiungo altri 6 metri e 60 centimetri rifà un altra volta il tutto!.
Niente da fare...è proprio pazzo, richiama l'ospedale....non vorrai farci scrivere 6 metri e 60 di comandi
per vedere un barile rotolare?
Fine prima puntata...
Messaggio modificato da lento il 23 aprile 2009 - 23:52

Aiuto















Pubblicità