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.

https://upload.wikimedia.org/wikipedia/commons/f/f9/Chomp_gameplay.png

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

  1. Alcune funzionalità di ezgraphics che possono essere utili per lo sviluppo del progetto sono descritte nel notebook di Approfondimenti su ezgraphics.
  2. Concentratevi inzialmente sulla funzionalità umano contro humano, potete successivamente implementare le altre funzionalità con poco sforzo.

Last modified: Sunday, 15 December 2024, 8:21 PM