アフィリエイト広告を利用しています

広告

posted by fanblog

2017年11月25日

じゃんけんプログラム

<PR>






じゃんけんプログラム


乱数を使ってじゃんけんをするプログラムです。

#include<stdio.h>
#include<stdlib.h> //rand(), srand()関数を使用するため
#include<time.h> //time()関数を使用するため
#define ROCK 1
#define SCISSORS 2
#define PAPER 0

//関数のプロトタイプ宣言
int get_num(void);
void print_hand(int );
void decide_win(int , int);

int main(void)
{
int com_hand, play_hand;

//あいこの限り繰り返す
do
{
//自分の手を入力
printf("あなたの手を入力してください.(グー: 1, チョキ: 2, パー: 3)\n");
printf("あなたの手:");
play_hand = get_num() % 3;

//相手の手を乱数を使って入手する
srand(time(NULL));
com_hand = rand() % 3;

printf("ジャンケンポン\n");

//それぞれの手を表示する
printf("あなたの手: ");
print_hand(play_hand);
printf("相手の手: ");
print_hand(com_hand);

//結果を表示する
decide_win(play_hand, com_hand);

}while(com_hand == play_hand);

return 0;
}
//キーボードから入力された数字を入手する
int get_num(void)
{
char buf[128];

fgets(buf, 128, stdin);

return atoi(buf);
}
//手を表示する
void print_hand(int hand)
{
switch(hand)
{
case ROCK:
printf("グー\n");
break;
case SCISSORS:
printf("チョキ\n");
break;
case PAPER:
printf("パー\n");
break;
}
}
//勝敗を表示する
void decide_win(int play_hand, int com_hand)
{
int result = play_hand - com_hand;

if(play_hand == com_hand)
printf("あいこです.\n");
else if(result == -1 || result == 2)
printf("あなたの勝ち!\n");
else if(result == 1 || result == -2)
printf("あなたの負け\n");
}



実行例


% ./a.out

あなたの手を入力してください.(グー: 1, チョキ: 2, パー: 3)

あなたの手:3

ジャンケンポン

あなたの手: パー

相手の手: チョキ

あなたの負け

%



*青字はキーボードから入力


<PR>





この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/7007868
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
ファン
 このブログの読者になる
 更新情報をチェックする
 ブックマークする
 友達に教える
検索
<< 2021年02月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28            
最新記事
(02/14)10進数から2進数に変換するプログラム
(11/25)じゃんけんプログラム
(11/19)log()関数の自作
(11/19)平方根計算関数sqrt()の自作
(11/19)exp関数の自作
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
月別アーカイブ
プロフィール
日別アーカイブ
RDF Site Summary
×

この広告は30日以上新しい記事の更新がないブログに表示されております。