C言語 じゃんけんswicth case 関数化
急いでいて大変困っています
じゃんけんゲームを作成したのですが
コンピュータの出す手、5つのパターン
(完全ランダム
コンピュータが絶対勝つ
コンピュータが絶対負け
絶対引き分け
絶対引き分け無い)
を作成して
その5つのパターンを関数化して呼び出すようにする。
というのを作成したいのですが
一応下記のプログラムまでは進められましたが
switch() case を関数化してint main(void)の外に書き込み
それぞれ呼び出せるようにしたいです。
PCの調子が悪く調べてもあまり出ず本当に困っています
私ならこう、というプログラムをご教授お願いします
作成したプログラム
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char *table[]={"グー","パー","チョキ"};
int main(void) ★int mainここから
{
int i,j;
int continue_f;
int player,computer;
int p_win,p_lose,p_draw;
int t_win,t_lose,t_draw;
t_win=t_lose=t_draw=0;
srand(time(NULL));
do{
p_win=p_lose=p_draw=0;
for(i=0;i<5;i++){
while(1){
printf("あなたが出した手は・・・\n");
printf("グー:0 パー:1 チョキ:2\n");
scanf("%d",&player);
if(0<=player&&player<=2){
break;
}else{
printf("もう一度入力してください。\n");
}
}
switch(0){//()の中を変更して下記のcaseを呼び出す★switch caseここから
case 0:
computer=rand()%3;
break;
case 1:
computer=(player+1)%3;
break;
case 2:
computer=(player+2)%3;
break;
case 3:
computer=player;
break;
case 4:
do{
computer=rand()%2;
}while(computer==player);
break;
} ★swicth caseここまで
if((player+1)%3==computer){
printf("あなたは%sでわたしは%sです・・・わたしの勝利です。\n",
table[player],table[computer]);
p_lose++;
}else if(player==computer){
printf("あなたもわたしも%sです・・・引き分けです。\n",table[player]);
p_draw++;
}else{
printf("あなたは%sでわたしは%sです・・・あなたの勝利です。\n",
table[player],table[computer]);
p_win++;
}
}
printf("%d勝 %d敗 %d引き分けでした。\n",p_win,p_lose,p_draw);
printf("このまま続けますか?続ける場合は何か数字を入力し、"
"続けない場合は-1を入力してください。\n");
scanf("%d",&continue_f);
t_win+=p_win;
t_lose+=p_lose;
t_draw+=p_draw;
}while(continue_f!=-1);
printf("トータルで %d勝 %d敗 %d引き分けでした。\n",t_win,t_lose,t_draw);
return 0;
} ★int main ここまで
お礼
ありがとうございます。解釈できスッキリです^ ^