#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void show(int hand) {
}
int main()
{
int man, com, diff;
int i, draw = 0, win = 0, lose = 0;
int hist_man[10], hist_com[10];
//乱数系列の変更
srand(time(NULL));
for( i = 0; i < 10; i++ )//10回繰り返し
{
printf("じゃんけん!!ゲーム\n");
printf("グ-(0), チョキ(1), パー (2)どれかを入力してください。\n");
scanf("%d", &man);
//COMが何を出すか
com = rand() % 3;
hist_man[i] = man;
hist_com[i] = com;
printf("じゃんけんぽん!\n\n");
//手の表示
printf( "あなたは ");
switch( man )
{
case 0:
printf("グー ");
break;
case 1:
printf( "チョキ");
break;
case 2:
printf( "パー ");
break;
}
printf( "\n");
printf( "COMは ");
switch( com )
{
case 0:
printf( "グー ");
break;
case 1:
printf( "チョキ");
break;
case 2:
printf( "パー ");
break;
}
printf( "\n");
//判定
diff = man - com;
if( diff == 0 )
{
printf( "あいこ!\n");
draw++;
}
else if( diff == -1 || diff == 2 )
{
printf( "あなたの勝ち!\n");
win++;
}
else
{
printf( "COMの勝ち!\n");
lose++;
}
printf( "%d 回目 あなたの %d 勝 %d 負け %d 引き分け\n\n", i+1, win, lose, draw);
}
//再現
printf( "対戦履歴\n");
for( i = 0; i < 10; i++ )//10回繰り返し
{
printf( "%d 回目 ", i+1);
//手の表示
printf( "あなたは ");
switch( hist_man[i] )
{
case 0:
printf( "グー ");
break;
case 1:
printf( "チョキ");
break;
case 2:
printf( "パー ");
break;
}
printf( " ");
printf( "COMは ");
switch( hist_com[i] )
{
case 0:
printf( "グー ");
break;
case 1:
printf( "チョキ");
break;
case 2:
printf( "パー ");
break;
}
printf( "\n");
}
printf( "┏ ┏━┓┏━┓┏┳┓┳━┓ ┏━┓┳ ┳┳━┓┳━┓ ┓\n");
printf( "┃ ┃ ┓┣━┫┃┃┃┣┫ ┃ ┃┃ ┃┣┫ ┣┳┛ ┃\n");
printf( "┗ ┗━┛┻ ┻┻ ┻┻━┛ ┗━┛┗━┛┻━┛┻┗┛ ┛\n");
return 0;
}
1. 引数 int hand を持ち、handが 0 なら“グー “, 1 なら”チョキ“, 2 なら”パー “ と表示する関数 void show を作成
2. グーチョキパー表示部分で関数 show を呼び出す(4箇所)
という課題がでました。
引数が 'hand'だけなのに、グー、チョキ、パーの3つの処理をどうやってかけばいいのですか?