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にあります。