Console 11: DoppioUno (boolean)
|
A questo punto per concludere, dobbiamo solo pensare alla struttura generale del gioco. Le giocate del computer saranno all'interno di un ciclo while:
while(c){
//computer gioca
//se doppio uno: c falsa, si esce dal ciclo (cambiaTurno())
//se ha vinto: finePartita() = Un'altra? (1) Uscire? (0)
}
Facciamo la stessa cosa per il giocatore:
while(b){
//giocatore gioca
//se doppio uno: b falsa, si esce dal ciclo (cambiaTurno())
//se ha vinto: finePartita() = Un'altra? (1) Uscire? (0)
}
Per sincronizzare le cose possiamo fare così: in partenza c è vera e b è falsa (inizia il computer); poi, quando si deve cambiare turno si inverte, impostando: c falsa e b vera. Quindi il metodo cambiaTurno() potrebbe essere qualcosa del genere:
if(c vera){ //quindi b falsa
c falsa;
b vera;
}
else{ //c falsa e b vera
c vera;
b falsa;
}
Le condizioni c, b potrebbero essere del tipo: x == 1 dove x è una variabile int. C'è un modo più elegante di procedere introducendo i tipi booleani. Un booleano è un tipo primitivo (cioè non è un oggetto) e può prendere due valori: true o false. Per esempio:
boolean finito = false;
dichiara e definisce una variabile di tipo boolean col valore false. Quindi nel nostro caso basterebbe prendere per c e b due variabili boolean, chiamate compTurno (turno del computer) e giocTurno (turno del giocatore) con i valori iniziali true e false.
Finalmente, rimane un'ultima cosa da fare: quando la partita si conclude, il programma non dovrebbe uscire, ma dovrebbe chiedere se si vuole rigiocare o uscire. Se il giocatore vuole rigiocare, bisogna azzerare i punteggi e fare ripartire tutta la baracca; ma per questo, come sappiamo già, basta mettere il tutto in un ciclo while. Quindi definiamo un ulteriore boolean:
boolean giocare = true;
e la struttura del metodo main sarà:
while(giocare){
while(compTurno){
//codice
}
while(giocTurno){
//codice
}
}//fine di while(giocare)
Il programma ripeterà il ciclo while(giocare) eseguendo uno dei cicli interni a seconda dei valori di compTurno e giocTurno. Per uscire dal programma, basterà, nel metodo finePartita(), dare l'istruzione: System.exit(0) [Attenzione: a seconda di come è strutturato il programma, l'istruzione:
giocare = false;
potrebbe non concludere immediatamente la partita]
Il codice completo è nella prossima pagina.