【C言語】じゃんけんの判定を行うプログラムの書き方

この記事では、C言語を使ってじゃんけんの判定を行うプログラムの作り方を解説します。

プログラムの基本的な構成要素や流れを理解し、プレイヤーの手の入力方法やコンピュータの手の生成方法、じゃんけんの判定方法などを学ぶことができます。

初心者の方でもわかりやすく解説しているので、ぜひ参考にしてみてください。

目次から探す

じゃんけんプログラムの実装

プレイヤーの手の入力

プレイヤーがじゃんけんの手を入力するためには、キーボードからの入力を受け取る必要があります。

C言語では、scanf関数を使ってキーボードからの入力を受け取ることができます。

int playerHand;
scanf("%d", &playerHand);

プレイヤーが手を入力する方法の説明

プレイヤーはじゃんけんの手を数字で入力します。

以下のように対応しています。

  • 0: グー
  • 1: チョキ
  • 2: パー

プレイヤーはキーボードから数字を入力し、それに対応するじゃんけんの手を選びます。

入力値のバリデーション

プレイヤーが入力した値が0, 1, 2のいずれかであるかを確認する必要があります。

以下のように条件分岐を使ってバリデーションを行います。

if (playerHand != 0 && playerHand != 1 && playerHand != 2) {
    printf("入力が正しくありません。0, 1, 2のいずれかを入力してください。\n");
    // 再度入力を受け取る処理などを追加することもできます
}

コンピュータの手の生成

コンピュータがじゃんけんの手を生成するためには、乱数を使ってランダムな値を生成します。

C言語では、rand関数を使って乱数を生成することができます。

int computerHand = rand() % 3;

コンピュータが手を生成する方法の説明

コンピュータは乱数を使ってじゃんけんの手を生成します。

rand関数は0からRAND_MAXまでの範囲の整数をランダムに生成します。

しかし、じゃんけんの手は0, 1, 2のいずれかであるため、rand関数の結果を3で割った余りを使って0から2の範囲のランダムな値を生成します。

乱数の生成方法

乱数を生成するためには、stdlib.hヘッダファイルをインクルードし、srand関数を使って乱数のシード値を設定する必要があります。

以下のように乱数のシード値を設定します。

#include <stdlib.h>
#include <time.h>
// 乱数のシード値を設定
srand(time(NULL));

じゃんけんの判定

じゃんけんの判定を行うためには、プレイヤーの手とコンピュータの手を比較します。

以下のように条件分岐を使って判定を行います。

if (playerHand == computerHand) {
    // 引き分けの処理
} else if ((playerHand == 0 && computerHand == 1) || (playerHand == 1 && computerHand == 2) || (playerHand == 2 && computerHand == 0)) {
    // プレイヤーの勝ちの処理
} else {
    // コンピュータの勝ちの処理
}

プレイヤーとコンピュータの手を比較する方法の説明

プレイヤーとコンピュータの手を比較するためには、以下のような条件分岐を使います。

  • グー(0) vs チョキ(1): プレイヤーの勝ち
  • チョキ(1) vs パー(2): プレイヤーの勝ち
  • パー(2) vs グー(0): プレイヤーの勝ち
  • 上記以外: コンピュータの勝ち

勝敗の判定方法

勝敗の判定は、プレイヤーとコンピュータの手を比較することで行います。

先ほど説明した条件分岐を使って、プレイヤーの勝ち、コンピュータの勝ち、引き分けのいずれかを判定します。

目次から探す