Javaでじゃんけんゲームを作る方法と応用例

Java

このページでは、Javaで簡単なじゃんけんゲームを作る方法について説明します。じゃんけんは、グー、チョキ、パーの3つの選択肢を使って、ユーザーとコンピュータ(CPU)との対戦をシミュレートします。また、ゲームを5回繰り返し、それぞれの選択肢が何回選ばれたかをカウントする方法も紹介します。

1. じゃんけんゲームの基本的な流れ

じゃんけんゲームを作成する基本的な流れは次のようになります。

  • ユーザーが選択する(グー、チョキ、パーのいずれか)
  • コンピュータがランダムに選択する
  • 勝敗を判定する(グーはチョキに勝ち、チョキはパーに勝ち、パーはグーに勝つ)
  • 結果を表示する

以下はその実装例です。

import java.util.Random;import java.util.Scanner;public class JankenGame {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Random random = new Random();String[] hands = {"グー", "チョキ", "パー"};int userChoice, cpuChoice;int userWins = 0, cpuWins = 0, draws = 0;for (int i = 0; i < 5; i++) {System.out.println("じゃんけんを開始します。0: グー, 1: チョキ, 2: パー");userChoice = scanner.nextInt();cpuChoice = random.nextInt(3);System.out.println("あなた: " + hands[userChoice] + ", コンピュータ: " + hands[cpuChoice]);if (userChoice == cpuChoice) {System.out.println("引き分けです。");draws++;}else if ((userChoice == 0 && cpuChoice == 1) || (userChoice == 1 && cpuChoice == 2) || (userChoice == 2 && cpuChoice == 0)) {System.out.println("あなたの勝ちです。");userWins++;}else {System.out.println("コンピュータの勝ちです。");cpuWins++;}}System.out.println("あなたの勝ち: " + userWins + ", コンピュータの勝ち: " + cpuWins + ", 引き分け: " + draws);}}

このコードでは、ユーザーが0(グー)、1(チョキ)、2(パー)のいずれかを選択し、コンピュータがランダムに選択します。そして、勝敗が判定されます。ゲームは5回繰り返し、最終的な勝敗と引き分けの回数が表示されます。

2. 勝敗の判定ロジック

勝敗の判定は、3つの条件で行われます。

  • ユーザーとコンピュータの選択が同じ場合は引き分け
  • ユーザーがグー(0)を選んでコンピュータがチョキ(1)を選んだ場合、ユーザーの勝ち
  • ユーザーがチョキ(1)を選んでコンピュータがパー(2)を選んだ場合、ユーザーの勝ち
  • ユーザーがパー(2)を選んでコンピュータがグー(0)を選んだ場合、ユーザーの勝ち
  • 上記以外はコンピュータの勝ち

3. じゃんけんを5回繰り返す

ゲームを5回繰り返すことで、ユーザーとコンピュータの勝敗の統計を取ることができます。上記のコードでは、5回繰り返し、各選択肢(グー、チョキ、パー)が何回選ばれたかをカウントしています。

この繰り返しによって、最終的にゲームの結果が集計され、勝敗の数が表示されます。引き分けもカウントされます。

4. 応用: より複雑なゲームにする方法

この基本的なじゃんけんの実装をさらに発展させて、より複雑なゲームにすることも可能です。たとえば、複数のラウンドを実施してトーナメント形式にしたり、ユーザーにヒントを与える機能を追加したりすることができます。

5. まとめ

今回紹介したJavaでのじゃんけんゲームの作り方は、基本的な構造を学ぶための良い例です。ユーザー入力の受け付け、ランダムな選択、勝敗の判定、そして繰り返し処理を通じて、プログラミングの基礎を理解することができます。このような簡単なゲームを作成することで、実践的なプログラミングスキルを高めることができます。

コメント

タイトルとURLをコピーしました