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.