Estoy creando un juego de piedra, papel o tijera, en el método playGame() no puedo hacer que el código funcione, solo imprime lo que el usuario y la computadora han elegido. Traté de averiguar dónde me estaba equivocando y todo lo que pude hacer fue imprimir un dibujo, ¡pero hizo que el juego siempre dibujara!
Todavía no he terminado el método, también necesito agregar un contador de puntaje hasta 3.
import java.util.Random; public class RockPaperScissors { private InputReader reader; private int yourScore; private int computerScore; private Random ran; /** * Constructor for objects of class RockPaperScissors */ public RockPaperScissors() { reader = new InputReader(); yourScore = 0; computerScore = 0; ran = new Random(1); } /** * An example of a method - replace this comment with your own */ public void printPrompt() { System.out.println(); System.out.println(); System.out.println("Enter your choice, paper, rock or scissors >"); } public String userChoice() { String input = reader.getInput(); input = input.trim().toLowerCase(); return input; } public String computerChoice() { Random ran = new Random(); int myRanInt = ran.nextInt(3); String computerRanChoice =""; switch(myRanInt) { case 0: computerRanChoice = "paper"; break; case 1: computerRanChoice = "scissors"; break; case 2: computerRanChoice = "rock"; break; } return computerRanChoice; } public void playGame() { printPrompt(); String userMove = this.userChoice(); System.out.println("you have chosen " + userMove + " and the computer has chosen " + computerChoice()); int roundWinner = 0; int count = 1; switch(roundWinner) { case 0: computerChoice().equals(userChoice()); System.out.println("This game is a draw"); break; case 1: computerChoice().equals("rock"); System.out.println(userMove.equals("paper") ? "The computer is the winner" : "You are the winner"); break; case 2: computerChoice().equals("paper"); System.out.println(userMove.equals("scissors") ? "The computer is the winner" : "You are the winner"); break; case 3: computerChoice().equals("scissors"); System.out.println(userMove.equals("rock") ? "The computer is the winner" : "You are the winner"); break; } } }En el bloque de cambio del método playgame() , ha inicializado el valor de roundWinner como 0, por lo que siempre imprimirá el case 0 , es decir, la declaración de sorteo.
Usar switch en este caso parece un poco complicado, ya que estás trabajando con dos variables, la elección de la computadora y del jugador, mientras que switch funciona solo con una variable. Intente usar algunas declaraciones if primero y luego trabaje su lógica para cambiar si es necesario