みなためラボ

【C言語】じゃんけんをするプログラムの作り方

文字サイズ

プログラムの概要

どうも! 高杉 皆為(@MinatameT)です。

このプログラムは、コンピューターとじゃんけんをするものです。画像は表示せずに、文字だけを表示します。

まず、ユーザーに0、1、2の整数値のどれかを入力させます。

  • 0は「グー」に対応。
  • 1は「チョキ」に対応。
  • 2は「パー」に対応。

そして、コンピューター側は0、1、2をランダムで決めて、それを出します。

あとは、ユーザーの数値とコンピューターの数値を見て、勝敗を判断します。

これで、じゃんけんが成立します。

それでは、そのソースコードと実行結果の例を確認していきます。

じゃんけんをするプログラムの例

ソースコード

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main(void)
{
  int myself,enemy;
  
  srand((unsigned)time(NULL)); //乱数の仕組みを初期化する。

  printf("0:グー、1:チョキ、2:パー >");
  scanf("%d",&myself); //ユーザーに値を入力させる。

  if(myself<0 || myself>=3) //入力した値が、0未満か3以上なら
  {
    return(0); //プログラムをここで終了させる。
  }
	
  enemy = (rand()%(3)); //乱数を3で割った値(0、1、2のランダムの値が代入。)

  if(myself==0) //自分がグーを出した場合
  {
    printf("あなたはグーを出しました。\n");
    if(enemy==0) //相手がグーを出した場合
    {
      printf("相手はグーを出しました。\n");
      printf("引き分けです。\n");
    }
    else if(enemy==1) //相手がチョキを出した場合
    {
      printf("相手はチョキを出しました。\n");
      printf("あなたの勝利です!\n");
    }
    else if(enemy==2) //相手がパーを出した場合
    {
      printf("相手はパーを出しました。\n");
      printf("あなたの負けです……。\n");
    }
  }

  else if(myself==1) //自分がチョキを出した場合
  {
    printf("あなたはチョキを出しました。\n");
    if(enemy==0) //相手がグーを出した場合
    {
      printf("相手はグーを出しました。\n");
      printf("あなたの負けです……。\n");
    }
    else if(enemy==1) //相手がチョキを出した場合
    {
      printf("相手はチョキを出しました。\n");
      printf("引き分けです。\n");
    }
    else if(enemy==2) //相手がパーを出した場合
    {
      printf("相手はパーを出しました。\n");
      printf("あなたの勝利です!\n");
    }
  }

  else if(myself==2) //自分がパーを出した場合
  {
    printf("あなたはパーを出しました。\n");
    if(enemy==0) //相手がグーを出した場合
    {
      printf("相手はグーを出しました。\n");
      printf("あなたの勝利です!\n");
    }
    else if(enemy==1) //相手がチョキを出した場合
    {
      printf("相手はチョキを出しました。\n");
      printf("あなたの負けです……。\n");
    }
    else if(enemy==2) //相手がパーを出した場合
    {
      printf("相手はパーを出しました。\n");
      printf("引き分けです。\n");
    }
  }

  return(0);
}

time関数を使うために、#include<time.h>を記述してください。

また、rand関数やsrand関数を使うために、#include<stdlib.h>を記述してください。

「srand((unsigned)time(NULL));」は、乱数の偏りを発生しにくくするためのおまじないです。このおまじないには、現在の時刻を利用しています。

「enemy = (rand()%(3));」は、0、1、2のうちのいずれかの値(ランダム)がenemyに代入されます。

それでは、実行結果を確認しましょう。

実行結果

0:グー、1:チョキ、2:パー >0
あなたはグーを出しました。
相手はチョキを出しました。
あなたの勝利です!

私はグーで、相手はチョキです。よって、私が勝利しました!

0:グー、1:チョキ、2:パー >1
あなたはチョキを出しました。
相手はチョキを出しました。
引き分けです。

私はチョキで、相手もチョキです。よって、引き分けです。

0:グー、1:チョキ、2:パー >2
あなたはパーを出しました。
相手はチョキを出しました。
あなたの負けです……。

私はパーで、相手はチョキです。よって、負けてしまいました。

0:グー、1:チョキ、2:パー >3

0、1、2以外の値を入力すると、プログラムはそのまま終了します。

これが、じゃんけんをするプログラムの作り方の例です。皆さん、お疲れさまでした。


 

みなためじゃんけん

このコーナーは、私と擬似的にじゃんけんできるコーナーです。

みなためじゃんけん、じゃんけんぽん!

私が出したのは……





パー

パーでした! チョキの勝利です!



この記事をSNSでシェアする

プログラミングカテゴリーの最新記事(5件)

最新記事(10件)

管理人のTwitter

内部リンク集