Java - piedra papel o tijera

 
Vista:
sin imagen de perfil

piedra papel o tijera

Publicado por Fatima (1 intervención) el 16/03/2020 22:35:34
Me pueden ayudar a saber el porque no funciona el do while, ya que necesito que para el programa cuando un jugador llega a las 3 partidas ganadas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package piedrapapelotijera;
 
import java.util.Scanner;
import static piedrapapelotijera.Operacion.Jugar;
 
/**
 *
 * @author ALUMNOS
 */
public class PiedraPapelOTijera {
 
 
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
 
        Operacion o=new Operacion();
 
        int j1, j2;
        int g1=0, g2=0;
 
        Scanner read=new Scanner(System.in);
 
        do{
 
        System.out.println("1=Piedra\n2=Papel\n3=Tijeras");
        System.out.println("Jugador 1:\nIngresa tu jugada:");
        j1=read.nextInt();
 
        System.out.println("\n\n\n\n\n\n\n\n1=Piedra\n2=Papel\n3=Tijeras");
        System.out.println("Jugador 2:\nIngresa tu jugada:");
        j2=read.nextInt();
 
            System.out.println("\n\n\n\n\n\n");
 
            o.Jugar(j1, j2);
 
        }while(g1<=3 || g2<=3);
 
    }
 
}







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package piedrapapelotijera;
 
/**
 *
 * @author ALUMNOS
 */
public class Operacion {
 
    private static int e;
    private static int g2;
    private static int g1;
 
 
 
    public static void Jugar(int j1, int j2 ){
 
 
 
           if(j1==1 && j2==1)
            {
                e++;
                System.out.println("Empate");
 
 
            }else if(j1==1 && j2==2)
            {
                g2=g2+1;
                System.out.println("Gana el jugador 2   "+g2);
 
            }else if(j1==1 && j2==3)
            {
                g1++;
                System.out.println("Gana el jugador 1"+g1);
 
 
            }else  if(j1==2 && j2==2)
            {
                e++;
                System.out.println("Empate");
 
 
            }else if(j1==2 && j2==1)
            {
                g1++;
                System.out.println("Gana el jugador 1");
 
 
            }else if(j1==2 && j2==3)
            {
                g2++;
                System.out.println("Gana el jugador 2");
 
 
            }else if(j1==3 && j2==3)
            {
                e++;
                System.out.println("Empate");
 
 
            }else if(j1==3 && j2==1)
            {
                g1++;
                System.out.println("Gana el jugador 1");
 
 
            }else if(j1==3 && j2==2)
            {
                g2++;
                System.out.println("Gana el jugador 2");
 
            }
 
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

piedra papel o tijera

Publicado por Rodrigo (623 intervenciones) el 16/03/2020 23:04:51
Cambia El || por &&
Es posible que sea necesario cambiar El <= por < porque tus contadores parten en 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

piedra papel o tijera

Publicado por Billy Joel (876 intervenciones) el 16/03/2020 23:12:34
Tienes || debes cambiarlo por &&
También acomodé un poco los datos de la clase Operacion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.Scanner;
 
public class Hormigas {
 
    public static void main(String[] args) {
        Operacion o = new Operacion();
        int j1, j2;
        //int g1 = 0, g2 = 0;
        Scanner read = new Scanner(System.in);
        do {
            System.out.println("1=Piedra\n2=Papel\n3=Tijeras");
            System.out.println("Jugador 1:\nIngresa tu jugada:");
            j1 = read.nextInt();
 
            System.out.println("\n\n\n\n\n\n\n\n1=Piedra\n2=Papel\n3=Tijeras");
            System.out.println("Jugador 2:\nIngresa tu jugada:");
            j2 = read.nextInt();
 
            System.out.println("\n\n\n\n\n\n");
 
            o.Jugar(j1, j2);
 
        } while (o.getG1() <= 3 && o.getG2() <= 3);
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class Operacion {
 
    private int e;
    private int g2;
    private int g1;
 
    public Operacion(){
        g1 = 0;
        g2 = 0;
    }
 
    public void Jugar(int j1, int j2) {
 
        if (j1 == 1 && j2 == 1) {
            e++;
            System.out.println("Empate");
 
        } else if (j1 == 1 && j2 == 2) {
            g2 = getG2() + 1;
            System.out.println("Gana el jugador 2 " + getG2());
 
        } else if (j1 == 1 && j2 == 3) {
            g1++;
            System.out.println("Gana el jugador 1" + getG1());
 
        } else if (j1 == 2 && j2 == 2) {
            e++;
            System.out.println("Empate");
 
        } else if (j1 == 2 && j2 == 1) {
            g1++;
            System.out.println("Gana el jugador 1");
 
        } else if (j1 == 2 && j2 == 3) {
            g2++;
            System.out.println("Gana el jugador 2");
 
        } else if (j1 == 3 && j2 == 3) {
            e++;
            System.out.println("Empate");
 
        } else if (j1 == 3 && j2 == 1) {
            g1++;
            System.out.println("Gana el jugador 1");
 
        } else if (j1 == 3 && j2 == 2) {
            g2++;
            System.out.println("Gana el jugador 2");
        }
    }
 
    /**
     * @return the g2
     */
    public int getG2() {
        return g2;
    }
 
    /**
     * @return the g1
     */
    public int getG1() {
        return g1;
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

piedra papel o tijera

Publicado por Costero (148 intervenciones) el 17/03/2020 02:24:34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class PaperScissors {
    public static void main(String [] args) {
        Operation operation = new Operation();
        Scanner read = new Scanner(System.in);
 
        do {
            System.out.println("\n\n\n");
            System.out.println("1=Piedra\n2=Papel\n3=Tijeras");
            System.out.println("Jugador 1:\nIngresa tu jugada:");
            int j1 = read.nextInt();
 
            System.out.println("\n\n\n1=Piedra\n2=Papel\n3=Tijeras");
            System.out.println("Jugador 2:\nIngresa tu jugada:");
            int j2 = read.nextInt();
 
            operation.play(j1, j2);
 
        } while (!operation.gameOver());
 
        System.out.println("\n\nEl vencedor es: " + operation.winner() + " con " + operation.numberOfEmpates() + " empates");
    }
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class Operation {
    private int e;
    private int g2 = 0;
    private int g1 = 0;
 
    private String [] names = {"Piedra", "Papel", "Tijera"};
 
    public void play(int j1, int j2) {
 
        System.out.println("Jugador 1: " + names[j1 -1] + ". Jugador 2: " + names[j2 - 1]);
 
        if (j1 == j2) {
            e++;
            System.out.println("Empate");
 
        } else if ((j1 == 1 && j2 == 3)
                       || (j1 == 3 && j2 == 2)
                       || (j1 == 2 && j2 == 1)) {
            g1++;
            System.out.println("Gana el jugador 1. Counter: " + g1);
 
        } else {
            g2++;
            System.out.println("Gana el jugador 2. Counter: " + g2);
 
        }
    }
 
    public boolean gameOver() {
        return (g1 >= 3 || g2 >= 3);
    }
 
    public int numberOfEmpates() {
        return e;
    }
 
    public String winner() {
        String winner = "Jugador 1";
        if(g2>=3) {
            winner = "Jugador 2";
        }
        return winner;
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar