2)<span class="Apple-style-span" style="font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-size: medium; ">Non esiste un port per Windows del modulo curses; per questa piattaforma, si provi il modulo Console, scritto da Fredrik Lundh e disponibile presso il sito </span><a class="url" href="http://effbot.org/efflib/console" style="font-family: avantgarde, sans-serif; color: rgb(0, 0, 187); background-color: rgb(255, 255, 255); font-size: medium; ">http://effbot.org/efflib/console</a><span class="Apple-style-span" style="font-family: 'Times New Roman'; background-color: rgb(255, 255, 255); font-size: medium; ">, che dà un risultato testuale indirizzabile col cursore e un pieno supporto per le istruzioni di mouse e tastiera.(fonte : </span><a href="http://www.python.it/doc/howto/Curses/curses-it/curses-it.html">http://www.python.it/doc/howto/Curses/curses-it/curses-it.html</a>)<br>
<br><div class="gmail_quote">Il giorno 10 dicembre 2011 11:34, Francesco Maida <span dir="ltr"><<a href="mailto:dev@cesco.it">dev@cesco.it</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Salve, mentre cercavo cose da studiare su Python in rete mi sono<br>
imbattuto in un videogioco scritto in Python attraverso l'ausilio<br>
della libreria "curses" che dovrebbe far parte della standard library.<br>
<br>
Personalmente sono rimasto veramente impressionato, con appena 26<br>
righe di codice (15 nella versione compressa) ha scritto il classico<br>
videogioco "snake" con il serpente che vaga per un labirinto mangiando<br>
e finisce per allungarsi ad ogni oggetto che mangia, chi ha avuto un<br>
vecchio home computer negli anni settanta/ottanta oppure un telefonino<br>
Nokia sa di cosa sto parlando :-)<br>
<br>
Qui il filmato:<br>
<a href="http://www.youtube.com/watch?v=Bj-H9uPEa5U" target="_blank">http://www.youtube.com/watch?v=Bj-H9uPEa5U</a><br>
<br>
Qui il codice sorgente:<br>
<a href="http://snake-1526l.googlecode.com/files/snake2615l.tar.bz2" target="_blank">http://snake-1526l.googlecode.com/files/snake2615l.tar.bz2</a><br>
<br>
<br>
Mi potreste aiutare a capire come funziona per favore?<br>
<br>
<br>
1) Curses. Per fare un'analogia con qualcosa a me più familiare, mi<br>
sembra di aver capito che questa "curses" fra le altre cose funziona<br>
come il vecchio comando LOCATE del Basic: il terminale viene diviso<br>
per caratteri in una griglia, e poi uno indica una coordinata X e una<br>
Y dello schermo ed il carattere da stamparci sopra. Quello che una<br>
volta si faceva con un LOCATE 5, 4 : PRINT "CIAO" con questa libreria<br>
si fa con un Curses.addstr(5, 4, 'CIAO'). E' corretto ?<br>
<br>
2) Se non ho capito male curses funziona solo da terminale. Questo<br>
significa che il codice funzionerebbe solo da Unix / Linux e Mac OS X<br>
? Niente Windows?<br>
<br>
3) Per come l'ho interpretato io leggendolo il programma farebbe questo:<br>
<br>
[Finchè l'utente non preme il tasto ESC per terminare la partita...]<br>
...[Scrive il punteggio sullo schermo]<br>
...[Attende un certo numero di millisecondi]<br>
...[Controlla se è stato premuto un tasto]<br>
...[Modifica l'array di tuple che contiene le posizioni di ogni<br>
segmento del serpente]<br>
...[Il serpente si è spostato sopra un carattere "O" ?]<br>
......[Si: allunga di una unità l'array che rappresenta il serpente]<br>
......[No: Si è spostato su di un carattere di spazio?]<br>
.........[Si: elimina la "coda" del serpente, ovvero l'ultimo elemento<br>
dell'array]<br>
.........[No: vuol dire che ha cozzato contro un muro o contro se<br>
stesso: GAME OVER!]<br>
...[Ridisegna la "testa" del serpente, utilizzando le coordinate X e Y<br>
indicate nella tupla che rappresenta il primo elemento dell'array]<br>
<br>
Secondo voi è corretta questa analisi? In particolare mi riesce<br>
difficile capire esattamente cosa fa il codice fra le righe 17 e 22.<br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
</blockquote></div><br>