import java.util.Random;
import java.util.Scanner;
public class Main {
private static final String ROCK = "rock";
private static final String PAPER = "paper";
private static final String SCISSOR = "scissor";
private static final String[] RPS = {ROCK, PAPER, SCISSOR};
public static void main(String[] args) {
var scanner = new Scanner(System.in);
while (true) {
String computerMove = getComputerMove();
String playerMove = getPlayerMove(scanner);
System.out.println("Computer played " + computerMove);
determineWinner(playerMove, computerMove);
if (!askToPlayAgain(scanner))
break;
}
}
// Decide the winner
private static void determineWinner(String playerMove, String computerMove) {
if (playerMove.equals(computerMove)) {
System.out.println("The game was a tie.");
} else if ((playerMove.equals(ROCK) && computerMove.equals(SCISSOR)) ||
(playerMove.equals(PAPER) && computerMove.equals(ROCK)) ||
(playerMove.equals(SCISSOR) && computerMove.equals(PAPER))) {
System.out.println("You win!");
} else {
System.out.println("You lose.");
}
}
// Ask the player to play again
private static boolean askToPlayAgain(Scanner scanner) {
String playAgain;
while (true) {
System.out.println("Play again? (y/n): ");
playAgain = scanner.nextLine().trim().toLowerCase();
if (playAgain.equals("y")) {
return true;
} else if (playAgain.equals("n")) {
return false;
}
System.out.println("Invalid input. Please enter 'y' or 'n'.");
}
}
// Computer move
private static String getComputerMove() {
return RPS[new Random().nextInt(RPS.length)];
}
// Player move
private static String getPlayerMove(Scanner scanner) {
String playerMove;
while (true) {
System.out.println("Please enter your move (rock, paper, scissor): ");
playerMove = scanner.nextLine().trim().toLowerCase();
if (playerMove.equals(ROCK) || playerMove.equals(PAPER) || playerMove.equals(SCISSOR)) {
return playerMove;
}
System.out.println(playerMove + " is not a valid move.");
}
}
}