BAEL-5379-create-simple-rock-paper-scissors-game (#11846)

Co-authored-by: tienvn4 <tienvn4@ghtk.co>
This commit is contained in:
vunamtien 2022-02-22 00:35:48 +07:00 committed by GitHub
parent 505a983ae5
commit 082d48e291
1 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,66 @@
package com.baeldung.game;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Scanner;
class RockPaperScissorsGame {
private static Map<Integer, String> movesMap = new HashMap<Integer, String>() {{
put(0, "rock");
put(1, "paper");
put(2, "scissors");
}};
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int wins = 0;
int losses = 0;
System.out.println("Welcome to Rock-Paper-Scissors! Please enter \"rock\", \"paper\", \"scissors\", or \"quit\" to exit.");
while (true) {
System.out.println("-------------------------");
System.out.print("Enter your move: ");
String playerMove = scanner.nextLine();
if (playerMove.equals("quit")) {
System.out.println("You won " + wins + " times and lost " + losses + " times.");
System.out.println("Thanks for playing! See you again.");
break;
}
if (!movesMap.containsValue(playerMove)) {
System.out.println("Your move isn't valid!");
continue;
}
String computerMove = getComputerMove();
if (playerMove.equals(computerMove)) {
System.out.println("It's a tie!");
} else if (isPlayerWin(playerMove, computerMove)) {
System.out.println("You won!");
wins++;
} else {
System.out.println("You lost!");
losses++;
}
}
}
private static boolean isPlayerWin(String playerMove, String computerMove) {
return playerMove.equals("rock") && computerMove.equals("scissors")
|| (playerMove.equals("scissors") && computerMove.equals("paper"))
|| (playerMove.equals("paper") && computerMove.equals("rock"));
}
private static String getComputerMove() {
Random random = new Random();
int randomNumber = random.nextInt(3);
String computerMove = movesMap.get(randomNumber);
System.out.println("Computer move: " + computerMove);
return computerMove;
}
}