import java.util.Scanner;
import java.util.Random;
public class RockPaperScissors {
private final String[] choices = {"rock", "paper", "scissors"};
private final Random random = new Random();
private final Scanner scanner = new Scanner(System.in);
public void playGame() {
System.out.println("Rock Paper Scissors");
System.out.println("Type r for rock, p for paper, or s for scissors");
String userChoice = getUserChoice();
String computerChoice = choices[random.nextInt(choices.length)];
determineWinner(userChoice, computerChoice);
}
private String getUserChoice() {
System.out.print("Your choice: ");
return scanner.nextLine().toLowerCase();
}
private void determineWinner(String userChoice, String computerChoice) {
System.out.println("You chose " + userChoice);
System.out.println("The computer chose " + computerChoice);
if (userChoice.equals(computerChoice)) {
System.out.println("It's a tie!");
} else if (
(userChoice.equals("rock") && computerChoice.equals("scissors")) ||
(userChoice.equals("paper") && computerChoice.equals("rock")) ||
(userChoice.equals("scissors") && computerChoice.equals("paper"))
) {
System.out.println("You win!");
} else {
System.out.println("You lose!");
}
}
public static void main(String[] args) {
RockPaperScissors game = new RockPaperScissors();
game.playGame();
}
}
import java.util.Scanner;
import java.util.Random;
import java.util.HashMap;
public class RockPaperScissors {
private final String[] choices = {"rock", "paper", "scissors"};
private final Random random = new Random();
private final Scanner scanner = new Scanner(System.in);
private final HashMap<String, String> winningChoices = new HashMap<>();
public RockPaperScissors() {
winningChoices.put("rock", "scissors");
winningChoices.put("paper", "rock");
winningChoices.put("scissors", "paper");
}
public void playGame() {
System.out.println("Rock Paper Scissors");
System.out.println("Type r for rock, p for paper, or s for scissors");
String userChoice = getUserChoice();
String computerChoice = choices[random.nextInt(choices.length)];
determineWinner(userChoice, computerChoice);
}
private String getUserChoice() {
System.out.print("Your choice: ");
return scanner.nextLine().toLowerCase();
}
private void determineWinner(String userChoice, String computerChoice) {
System.out.println("You chose " + userChoice);
System.out.println("The computer chose " + computerChoice);
if (userChoice.equals(computerChoice)) {
System.out.println("It's a tie!");
} else if (winningChoices.get(userChoice).equals(computerChoice)) {
System.out.println("You win!");
} else {
System.out.println("You lose!");
}
}
public static void main(String[] args) {
RockPaperScissors game = new RockPaperScissors();
game.playGame();
}
}
RockPaperScissors.main(null);
Rock Paper Scissors
Type r for rock, p for paper, or s for scissors
Your choice: You chose r
The computer chose paper
---------------------------------------------------------------------------
java.lang.NullPointerException: null
at RockPaperScissors.determineWinner(#15:1)
at RockPaperScissors.playGame(#15:1)
at RockPaperScissors.main(#15:1)
at .(#16:1)