C言語 じゃんけんゲーム 非常に困っています
じゃんけんゲームを作成したのですが
コンピュータの出す手を5つのパターンを作成して
その5つのパターンを関数化して呼び出すようにする。
というのを作成したいのですが検索などしましたが
コンピュータの調子が悪く、それらしい物が見つからず、
何方か無礼ですが自分ならこうするという模範解答お願いします…
一応下記のプログラムまでは進められましたが
switch()case を関数化してゲーム前に入力して5つのパターンを
それぞれ呼び出せるようにしたいです…
(例:ゲーム前に「パターンを選択:5でランダム、6でコンピュータ絶対勝つ…(省略)」
を表示させて入力数字でパターンを呼び出し、開始する)
5つのパターン(コンピュータの手)
完全ランダム
コンピュータが絶対勝つ
コンピュータが絶対負け
絶対引き分け
絶対引き分け無い
作成したプログラム
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char *table[]={"グー","パー","チョキ"};
int main(void)
{
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(i){
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;
}
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;
}
お礼
ありがとうございます!あたっています!本当にすっきりしました。