- 1~3でグー・チョキ・パーを入力させる(1~3以外はやり直し)
- 相手(コンピュータ)は乱数で手(1~3)を決定
- 勝敗・引き分けを表示
イメージ
jyanken.c
/*
xJyanken.c じゃんけんをコンピュータで再現する
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define WIN 1
#define LOSE 2
#define DRAW 0
#define GU 1
#define CYOKI 2
#define PA 3
int main(void)
{
int you, com, result;
/* じゃんけん */
printf("じゃんけん!\n");
/* 手を決める(自分) */
do{
printf("[1] グー [2] チョキ [3] パー > ");
scanf("%d", &you);
} while(you < 1 || you > 3);
/* 手を決める(コンピュータ) */
srand((unsigned)time(NULL));
com = rand() % 3 + 1;
/* ポン! */
printf("\nポン!\n");
/* 双方の手を表示 */
printf(" あなたの手: ");
switch(you){
case GU:
printf("グー\n");
break;
case CYOKI:
printf("チョキ\n");
break;
case PA:
printf("パー\n");
}
printf("コンピュータの手: ");
switch(com){
case GU:
printf("グー\n");
break;
case CYOKI:
printf("チョキ\n");
break;
case PA:
printf("パー\n");
}
printf("\n");
/* どちらが勝ったか? */
if(you == com){
result = DRAW;
}
else if(you == GU && com == CYOKI){
result = WIN;
}
else if(you == CYOKI && com == PA){
result = WIN;
}
else if(you == PA && com == GU){
result = WIN;
}
else{
result = LOSE;
}
/* 勝敗表示 */
switch(result){
case WIN:
printf("<<<あんたの勝ちだよ!>>>");
break;
case LOSE:
printf("<<<あんたの負けだ!!>>>\n");
break;
case DRAW:
printf("<<あいこです>>\n");
}
return 0;
}
コメント