{}
run-icon
Main.java
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."); } } }
Output