Il progetto d'esame: Chomp
Il progetto consiste nel realizzare un programma Python che implementa Chomp, un gioco di strategia per due giocatori.
Breve descrizione del gioco
Chomp è un gioco strategico che si gioca con una griglia di cioccolato. La griglia è composta da quadrati, e ogni giocatore a turno deve "mangiare" un quadrato insieme a tutti quelli a destra e sotto di esso. Il quadrato in alto a sinistra è avvelenato, per cui il primo giocatore che lo mangia perde la partita. I due giocatori si alternano, e sono obbligati a mangiare almeno un quadrato. La sfida sta nel pianificare mosse che forzino l'avversario a prendere il quadrato avvelenato.
Quella di sotto è una sequenza di gioco in cui il primo giocatore perde, perché gli è rimasta da mangiare solo il quadrato avvelenato.
Cosa dovete fare
Dovete realizzare un programma che usa la libreria ezgraphics per implementare il gioco del Chomp. Il programma deve prevedere 3 modalità di gioco:
- umano contro umano
- umano contro computer
- computer contro computer
Nella modalità umano contro umano il programma deve:
- visualizzare la barretta di cioccolato;
- tenere traccia del giocatore di turno, e visualizzarlo sullo schermo;
- attendere il click del giocatore; quando il giocatore fa click su un quadratino di cioccolato, tutta la parte mangiata deve sparire dal campo di gioco;
- annunciare un vincitore quando qualcuno mangia il quadratino avvelenato.
Nelle altre due modalità, uno o entrambi i giocatori sono rimpiazzati dal computer:
- quando è il turno del computer, il programma aspetta qualche decimo di secondo per far finta di stare pensando, poi muove a caso.
Trovate qui sotto un video che mostra una implementazione dimostrativa del progetto.
Altri requisiti
A parte i requisiti funzionali descritti sopra, altri requisiti che il progetto deve obbligatoriamente soddisfare sono:
- Il cioccolato deve essere visualizzato in maniera grafica, e non eccessivamente stilizzata. Nella implementazione di prova, è stata usata l'immagine di un quadratino di cioccolato che è stata ripetuta più volta. Se volete potere usare la stessa immagine.
- La dimensione del campo di gioco (numero di quadratini di cioccolato) deve essere parametrica. Il programma deve usare due costanti SIZEX e SIZEY che contengono la dimensione della barretta (numero di quadratini in orizzontale e verticale). Le due costanti devono essere inizializzate all'inizio del programma. Il programma deve adattarsi a qualunque valore (ragionevole) di SIZEX e SIZEY.
Video della implementazione dimostrativa
Suggerimenti
Segue un elenco di suggerimenti per lo sviluppo del progetto
- Alcune funzionalità di ezgraphics che possono essere utili per lo sviluppo del progetto sono descritte nel notebook di Approfondimenti su ezgraphics.
- Concentratevi inzialmente sulla funzionalità umano contro humano, potete successivamente implementare le altre funzionalità con poco sforzo.