Перейти к основному содержимому

Создайте простую игру «Камень-ножницы-бумага» на Java

· 2 мин. чтения

1. Обзор

В этом коротком уроке мы увидим, как создать простую игру «Камень-ножницы-бумага» на Java.

2. Создайте нашу игру «Камень-ножницы-бумага»

Наша игра позволит игрокам вводить «камень», «бумага» или «ножницы» в качестве значения каждого хода.

Во-первых, давайте создадим перечисление для ходов:

enum Move {
ROCK("rock"),
PAPER("paper"),
SCISSORS("scissors");

private String value;

//...
}

Затем давайте создадим метод, который генерирует случайные целые числа и возвращает ход компьютера:

private static String getComputerMove() {
Random random = new Random();
int randomNumber = random.nextInt(3);
String computerMove = Move.values()[randomNumber].getValue();
System.out.println("Computer move: " + computerMove);
return computerMove;
}

И метод, который проверяет, выиграл ли игрок:

private static boolean isPlayerWin(String playerMove, String computerMove) {
return playerMove.equals(Move.ROCK.value) && computerMove.equals(Move.SCISSORS.value)
|| (playerMove.equals(Move.SCISSORS.value) && computerMove.equals(Move.PAPER.value))
|| (playerMove.equals(Move.PAPER.value) && computerMove.equals(Move.ROCK.value));
}

Наконец, мы будем использовать их для формирования полной программы:

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 (Arrays.stream(Move.values()).noneMatch(x -> x.getValue().equals(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++;
}
}

Как видно выше, мы используем Java Scanner для чтения введенного пользователем значения.

Давайте немного поиграем и посмотрим на результат:

Welcome to Rock-Paper-Scissors! Please enter "rock", "paper", "scissors", or "quit" to exit.
-------------------------
Enter your move: rock
Computer move: scissors
You won!
-------------------------
Enter your move: paper
Computer move: paper
It's a tie!
-------------------------
Enter your move: quit
You won 1 times and lost 0 times.
Thanks for playing! See you again.

3. Заключение

В этом кратком руководстве мы узнали, как создать простую игру «Камень-ножницы-бумага» на Java.

Как всегда, пример кода из этой статьи можно найти на GitHub .