Assegnare valori a variabili del main tramite if-else in un metodo

di il
4 risposte

Assegnare valori a variabili del main tramite if-else in un metodo

Sono alle prime armi e sto cercando di realizzare un programmino che permetta di giocare a tris tramite System.out.println.
Ho creato un metodo che tramite l'imput di un numero permette al giocatore di scegliere dove posizionare il simbolo e che verifichi se il giocatore inserisce un qualcosa di non valido o una casella già occupata; il problema è che il metodo deve assegnare un valore ad una delle variabili presenti nel main a seconda della casella scelta e return permette di assegnare il valore solo ad una variabile specifica. Potrei risolvere inserendo il codice nel main più volte senza creare un metodo o utilizzano una serie di if-else ma allungherei il codice di molto inutilmente, quindi vorrei sapere se c'è una soluzione migliore. Grazie

Link download codice completo: https://www.mediafire.com/file/ge47i2na013b6rp/TrisJava/file
vvv Parti del codice vvv

public class tris2 {

public static Scanner scan;
public static boolean imbroglio, botWin = false;
public static char tris1 = ' ', tris2 = ' ', tris3 = ' ', tris4 = ' ', tris5 = ' ', tris6 = ' ', tris7 = ' ', tris8 = ' ', tris9 = ' ';
public static String inserimento;


public static void main(String[] args) throws InterruptedException {

long start = System.currentTimeMillis();

scan = new Scanner(System.in);
boolean imbroglio = true, botWin;
char tris1 = ' ', tris2 = ' ', tris3 = ' ', tris4 = ' ', tris5 = ' ', tris6 = ' ', tris7 = ' ', tris8 = ' ', tris9 = ' ';
String inserimento = " ";

//PLAYER FIRST MOVE
System.out.println("Inserisci il numero che");
System.out.println("corrisponde a dove vuoi posizionare il simbolo");
System.out.println("e premi invio (non sovrascrivere caselle già occupate!)");

botWin = false; inserimentoPlayerScanner(scan,imbroglio,botWin,inserimento,tris1,tris2,tris3,tris4,tris5,tris6,tris7,tris8,tris9);
stampaTabella(tris1,tris2,tris3,tris4,tris5,tris6,tris7,tris8,tris9);
}

public static void inserimentoPlayerScanner(Scanner scan,boolean imbroglio, boolean botWin, String inserimento,char t1,char t2,char t3,char t4,char t5,char t6,char t7,char t8,char t9) {
scan =new Scanner(System.in);


while(imbroglio==true) {

inserimento = scan.nextLine();

switch(inserimento) {
case "1":
if (t1 == ' ') {
t1 = '0';
imbroglio = false;
break;

} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
case "2":
if (t2 == ' ') {
t2='O';
imbroglio = false;
break;
} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
case "3":
if (t3 == ' ') {
t3='O';
imbroglio = false;
break;
} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
case "4":
if (t4 == ' ') {
t4='O';
imbroglio = false;
break;
} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
case "5":
if (t5 == ' ') {
t5='O';
imbroglio = false;
break;
} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
case "6":
if (t6 == ' ') {
t6='O';
imbroglio = false;
break;
} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
case "7":
if (t7 == ' ') {
t7='O';
imbroglio = false;
break;
} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
case "8":
if (t8 == ' ') {
t8='O';
imbroglio = false;
break;
} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
case "9":
if (t9 == ' ') {
t9='O';
imbroglio = false;
break;
} else {
System.out.println("Stai cercando di imbrogliare furbetto?");
System.out.println("Dai fai il serio, inserisci una casella vuota");
break;
}
default:
System.out.println("hai inserito un carattere non valido! ");
System.out.println("inserisci un numero da 1 a 9");
}
}

imbroglio = true;

}

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte