In questa serie di esercizi proveremo a sviluppare un programma per giocare a Forza 4. Il programma mostra semplicemente la griglia del gioco, chiedendo alternativamente ai due giocatori la propria mossa. Determina quando la partita è terminata con la vittoria di uno dei giocatori o con un pareggio.

Per svolgere gli esercizi, dovete prima di tutto scaricare i programmi delle lezione. Troverete due file: Forza4.java e TestForza4.java. Il primo è quello su cui dovete lavorare. Il programma principale è già scritto, ma utilizza vari metodi lasciati in bianco, o contenenti soltanto una istruzione return, che potete modificare e che ha il solo scopo di consentire la compilazione del file senza errori. Il vostro compito è quello di scrivere il codice di questi metodi per far funzionare correttamente il programma. Prima di ogni metodo c'è un commento che dettaglia quello che il metodo deve fare.

Il file TestForza4.java contiene invece alcuni test (già scritti) per collaudare i metodi che dovete scrivere. Potete utilizzarli per controllare se i vostri metodi sono corretti, ma per il resto potete ignorare questo file.

Tornando al file Forza4.java, è importante capire come il programma memorizzi lo stato del gioco. In Forza 4, lo stato del gioco dipende solo dai gettoni inseriti nella griglia. Questa informazione è memorizzata come un array bidimensionale di char. Ogni posizione dell'array bidimensionale contiene o uno spazio (per indicare che quella posizione della griglia è vuota) o una X (per indicare la presenza del gettone del giocatore X) oppure una O (per indicare la presenza di un gettone del giocatore O). Normalmente i giocatori si distinguono per i colori dei gettoni, ma siccome non sappiamo come visualizzare scritte a colori, abbiamo optato per l'uso di X ed O. Ad esempio, il seguente array

char[][] board = { 
  { 'O', ' ', ' ', ' ' },
  { 'O', 'X', ' ', ' ' },
  { 'X', 'X', ' ', ' ' }
}

rappresenta la seguente griglia:

|O| | | |
|O|X| | |
|X|X| | |

I vari metodi che dovete scrivere operano quasi tutti su array bidimesionali di questo tipo.

Ultime modifiche: martedì, 13 dicembre 2022, 16:20