この記事では、C言語を使ってじゃんけんの勝敗を判定するプログラムの作り方を解説します。
プログラミング初心者の方でもわかりやすく、サンプルコードを交えて手順ごとに説明しています。
じゃんけんのルールやプログラムの構成要素、勝敗の判定方法など、基本的な知識を身につけることができます。
完成したプログラムを実行して、じゃんけんの結果を確認してみましょう!
じゃんけんのルール
じゃんけんは、2人以上のプレイヤーが手を出して勝敗を競うゲームです。
基本的なルールは以下の通りです。
じゃんけんの基本ルールの説明
- グー、チョキ、パーの3つの手の中から1つを選びます。
- プレイヤー同士が同時に手を出し合い、勝敗を決定します。
- グーはチョキに勝ち、チョキはパーに勝ち、パーはグーに勝ちます。
- 同じ手を出した場合は引き分けとなります。
グー・チョキ・パーの手の表現方法
C言語では、グー、チョキ、パーをそれぞれ数値で表現することが一般的です。
以下のように定数を使って表現します。
#define GU 0
#define CHOKI 1
#define PA 2
このように定義することで、後のプログラムで手の表現に数値を使用することができます。
例えば、ユーザーがグーを選んだ場合はGU
、チョキを選んだ場合はCHOKI
、パーを選んだ場合はPA
という数値を使って表現します。
定数はプログラム内で何度でも使用することができ、可読性を高めるために役立ちます。
じゃんけん勝敗プログラムの作成
変数の宣言と初期化
変数は、データを格納するためのメモリ領域を確保するために使用されます。
変数を使用する前には、変数の宣言と初期化を行う必要があります。
変数の宣言は、変数の型と名前を指定して行います。
例えば、int型
の変数playerHand
を宣言する場合は、以下のように記述します。
int playerHand;
変数の初期化は、変数に初期値を代入することです。
初期化を行うことで、変数には予め値が設定されます。
例えば、playerHand
に初期値として0
を代入する場合は、以下のように記述します。
int playerHand = 0;
ユーザーの手の入力方法
プログラムを実行する際に、ユーザーにじゃんけんの手を入力してもらう必要があります。
C言語では、標準入力を使用してユーザーからの入力を受け取ることができます。
標準入力からの入力を受け取るためには、scanf関数
を使用します。
scanf関数
は、指定した書式に従って入力を受け取り、変数に格納します。
例えば、ユーザーからの入力を整数として受け取り、playerHand
に代入する場合は、以下のように記述します。
scanf("%d", &playerHand);
コンピュータの手の決定方法
じゃんけんのプログラムでは、コンピュータもランダムに手を選ぶ必要があります。
C言語では、乱数を生成するためにrand関数
を使用することができます。
rand関数
は、0からRAND_MAX
までの範囲の乱数を生成します。
乱数の範囲を制限するためには、生成された乱数を適切な範囲に変換する必要があります。
例えば、0から2までの範囲の乱数を生成し、computerHand
に代入する場合は、以下のように記述します。
computerHand = rand() % 3;
※ プログラムの構成要素や変数の宣言と初期化、ユーザーの手の入力方法、コンピュータの手の決定方法について、具体的なサンプルコードや実行結果の例を交えて解説すると、読者にとってより理解しやすくなります。
勝敗の判定
じゃんけんの勝敗を判定するためには、ユーザーの手とコンピュータの手を比較し、条件式を用いて判定します。
勝敗を判定するための条件式の作成
まず、ユーザーの手とコンピュータの手を比較するために、条件式を作成します。
以下のような条件式を使用することが一般的です。
if (userHand == computerHand) {
// 引き分けの場合の処理
} else if ((userHand == 0 && computerHand == 1) || (userHand == 1 && computerHand == 2) || (userHand == 2 && computerHand == 0)) {
// ユーザーの勝ちの場合の処理
} else {
// コンピュータの勝ちの場合の処理
}
上記の条件式では、userHand
とcomputerHand
はそれぞれユーザーとコンピュータの手を表す変数です。
0
はグー、1
はチョキ、2
はパーを表しています。
勝敗の結果を表示する方法
勝敗の結果を表示するためには、条件式の結果に応じて適切なメッセージを表示します。
以下は、勝敗の結果を表示するためのサンプルコードです。
if (userHand == computerHand) {
printf("引き分けです。\n");
} else if ((userHand == 0 && computerHand == 1) || (userHand == 1 && computerHand == 2) || (userHand == 2 && computerHand == 0)) {
printf("あなたの勝ちです!\n");
} else {
printf("コンピュータの勝ちです。\n");
}
上記のコードでは、printf関数
を使用して結果を表示しています。
printf関数
の引数には、表示したいメッセージを指定します。
これにより、条件式の結果に応じて適切なメッセージが表示されるようになります。
※ printf関数
は、C言語において標準出力に文字列を表示するために使用される関数です。