Salve,
sono sempre alle prese con il gioco di carta forbice e sasso, e ho un ultimo problema.
Ho provato ad utilizzare il costrutto while per far si che l'utente scelga se continuare ancora il gioco o fermarsi, ma non funziona, ovvero li ho detto di digitare 4 per uscire e 0 per ricominciare, quansdo premo 4 esce la scritta fine gioco come ho volevo io, ma il programma non si chiude; poi se premo 0 anziché ricominciare esce sempre la scritta fine gioco e il gioco resta aperto: come mai?
Queste sono i due file:
classe senza main.


import java.util.*;
public class MioGioco {
public int sceltaRudy() {
Random random = new Random();
return random.nextInt(3) + 1;
}
public static void valutaRisultato(int utente, int computer, String nomeUtente) {
String risultato = null;
if (utente ==1){
if (computer ==1) {
System.out.println(risultato = "Carta con carta: pareggio!");
}
}
if (utente ==2) {
if (computer == 2) {
System.out.println(risultato = "Forbice con forbice pareggio!");
}
}
if (utente ==3) {
if (computer ==3) {
System.out.println(risultato = "Sasso con sasso Pareggio!");
}
}
if (utente== 1) {
if (computer ==2) {
System.out.println(risultato = "Forbici taglia carta... ha vinto rudi!");
}
}
if (utente ==1) {
if (computer ==3) {
System.out.println(risultato = "Carta avvolge sasso... vince " + nomeUtente + "!");
}
}
if (utente == 2) {
if (computer ==1) {
System.out.print(risultato = "Forbice taglia carta vince ..." + nomeUtente + "!");
}
}
if (utente == 2) {
if (computer == 3) {
System.out.println(risultato = "Sasso rompe forbice... vince Rudy!");
}
}
if ( utente == 3) {
if (computer ==1) {
System.out.println(risultato = "Sasso avvolge carta... vince Rudy!");
}
}
if (utente == 3) {
if ( computer ==2) {
System.out.println(risultato = "Sasso rompe forbice vince... " + nomeUtente + "!");
}
}
}
}
Classe con il main

import java.util.Scanner;
public class CartaForbiceESasso {
public static void main(String args []) {
MioGioco miogioco = new MioGioco();
int sceltaDiRudy;
sceltaDiRudy=miogioco.sceltaRudy();
Scanner scanner = new Scanner(
System.in);
System.out.println("Benvenuto! pronto a giocare con rudy? Presentati scrivendo il tuo nome e premi invio!");
String nomeUtente = scanner.nextLine();
int sceltaUtente = 0;
do {
System.out.println("Ciao" + nomeUtente + "! Digita 1 per carta, 2 per forbici e 3 per sasso");
sceltaUtente = scanner.nextInt();
scanner.nextLine();
}
while ((sceltaUtente < 1) || (sceltaUtente > 3));
miogioco.valutaRisultato(sceltaUtente, sceltaDiRudy, nomeUtente);
while (sceltaDiRudy < 10 && sceltaUtente <10) {
System.out.println("Digita 4 per terminare il gioco, 0 per continuare");
sceltaUtente = scanner.nextInt();
scanner.nextLine();
System.out.print("Fine gioco!");
}
}
}
Grazie a chi vorrà aiutarmi!