0
When choosing option 1 (easy) the program enters case 1 correctly, but when I choose the port (0, 1 or 2) it goes back to the menu, the goal is that if the port is the right one it passes to the next line with the new sequence of ports (second line of the matrix) and if it is not the right port the user should try again. Thank you.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;
public class Ejerc9 {
public static void main(String[] args) {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int opcion = 0;
int tenta =0;
int i=0;
int j=0;
int [][] porta = new int [3][3];
Random r = new Random();
// para cada linha
int qual=0;
int cont1=0;
int cont2=0;
int count3=0;
while (opcion != 4) {
System.out.println ("Juego de las 3 Puertas, intente acertar la puerta buena");
System.out.println ("Elige la dificuldad:");
System.out.println ();
System.out.println ("1.Facil");
System.out.println ("2. Medio");
System.out.println ("3. Avanzado");
System.out.println ("4. Salir");
System.out.println ();
String opcionStr = in.readLine ();
opcion = Integer.parseInt(opcionStr);
while (opcion < 1 || opcion > 4) {
System.out.println ("Elige la dificuldad (1,2,3):");
System.out.println ();
System.out.println ("1.Facil");
System.out.println ("2. Medio");
System.out.println ("3. Avanzado");
System.out.println ("4. Salir");
System.out.println ();
opcionStr = in.readLine ();
opcion = Integer.parseInt(opcionStr);
}
switch (opcion) {
case 1:
qual = r.nextInt(3);
for(i =0; i<3;i++){
qual = r.nextInt(3);
porta[i][qual] = 1;
for(j=0; j<3;j++){
}
}
System.out.println ("Elige una Puerta: Tenemos las puertas 0, 1 y 2");
String tentaStr = in.readLine ();
tenta = Integer.parseInt(tentaStr);
while(tenta<0|tenta>2){
System.out.println ("Elige una Puerta valida: Tenemos las puertas 0, 1 y 2");
tentaStr = in.readLine ();
tenta = Integer.parseInt(tentaStr);
while(tenta!=porta[0][qual]){
System.out.println ("Elige otra Puerta");
tentaStr = in.readLine ();
tenta = Integer.parseInt(tentaStr);
}
if(tenta==porta[0][qual]){
i++;
cont1=cont1+1;
System.out.println (" Nivel 2 -Elige una Puerta : Tenemos las puertas 0, 1 y 2");
tentaStr = in.readLine ();
int tenta2 = Integer.parseInt(tentaStr);
while(tenta2<0|tenta2>2){
System.out.println ("Elige una Puerta valida: Tenemos las puertas 0, 1 y 2");
tentaStr = in.readLine ();
tenta2 = Integer.parseInt(tentaStr);}
while(tenta2!=porta[1][qual]){
System.out.println ("Elige otra Puerta");
tentaStr = in.readLine ();
tenta2 = Integer.parseInt(tentaStr);
}
if(tenta2==porta[1][qual]){
i++;
cont1=cont1+1;
System.out.println (" Nivel 3 -Elige una Puerta : Tenemos las puertas 0, 1 y 2");
tentaStr = in.readLine ();
int tenta3 = Integer.parseInt(tentaStr);
while(tenta3<0|tenta3>2){
System.out.println ("Elige una Puerta valida: Tenemos las puertas 0, 1 y 2");
tentaStr = in.readLine ();
tenta3 = Integer.parseInt(tentaStr);}
while(tenta3!=porta[2][qual]){
System.out.println ("Elige otra Puerta");
tentaStr = in.readLine ();
tenta3 = Integer.parseInt(tentaStr);
}
if(tenta3==porta[2][qual]){
i++;
cont1=cont1+1;}
}
}
}
if(cont1==3){
System.out.println ("Congrats!!!");
}
break;
case 2:
break;
case 3:
break;
case 4:
System.out.println("Hasta luego.");
break;
}
}
}
catch(Exception e){
System.out.println("Error 400" +e);
}
}
}
Thanks @mgibsonbr, could you point me the path of light to make it less "noodle"? hehehe. Just a tip even. Thank you.
– Marcio.Rezende
I switched to go, it was like this: I still have to cut but it’s almost there.
– Marcio.Rezende
for(i =0; i<port.length;i++){ System.out.println("Level "+i); for(j=0; j<porta.length;j++){ System.out.println ("Elige una Puerta: Tenemos las Puertas 0,1,2"); String tentaStr = in.readline (); tries = Integer.parseint(tentaStr); } if(port[i][tries] !=1){continue;} }
– Marcio.Rezende