前提・実現したいこと
三次元の戦略テーブルを用いてじゃんけんゲームを作りたいです。
iStrategyTable[ひとつ前のCPUの手:C][ひとつ前の人間の手:M][今出したコンピューターの手PC]で作成し、C がグー、Mがパー、PCがパーで勝ったら、iStrategyTable[グー][パー][パー]の内容をプラス1し、負けたらマイナス1をし、引き分けならパーに勝てるチョキをPCに入れてプラス1をします。CPUはひとつ前の局面C,Mに対して、最も確率の高い手をiStrategyTable[C][M]の通りで一番値の大きい要素を探してCPUに手を出させたいです。
発生している問題・エラーメッセージ
実現したいことをどうすればいいのか。
該当のソースコード
C言語です
1#include <stdio.h> 2 3void main() 4{ 5 int i; 6 int draw=0,win=0,lose=0; //勝敗記録 7 int iInputNum; //自分の手 8 int iComNum=0; //COMの手 9 int iComNum2=0; //COMの手今出す手 10 int iStrategyTable[3][3][3] = {0};//経験値蓄積 11 12 for(i=0;i<100;i++) 13 { 14 15 printf("あなたの手を入力してください(0:グー 1:チョキ 2:パー ) -> "); 16 scanf("%d",&iInputNum); 17 18 19 20 if(iComNum2 ==0) 21 { 22 printf("COM グー です。",iComNum2); 23 } 24 if(iComNum2 ==1) 25 { 26 printf("COM チョキ です。",iComNum2); 27 } 28 if(iComNum2 ==2) 29 { 30 printf("COM パー です。",iComNum2); 31 } 32 33 if(iInputNum == iComNum) 34 { 35 printf("引き分けです。\n"); 36 iComdraw = (iComNum2-1)%3; 37 iStrategyTable[iComNum][iInputNum][iComdraw] += 1; 38 draw ++; 39 } 40 else if((iInputNum + 1) % 3 == iComNum) 41 { 42 printf("あなたの勝ちです。\n"); 43 iStrategyTable[iComNum][iInputNum][iComNum2] += -1; 44 win++; 45 } 46 else 47 { 48 printf("コンピューターの勝ちです。\n"); 49 iStrategyTable[iComNum][iInputNum][iComNum2] += 1; 50 lose++; 51 } 52 printf("%d勝 %d負 %d分\n",win,lose,draw); 53 54 } 55}
試したこと
調べたり、ほかのことを実行したりしました。
補足情報(FW/ツールのバージョンなど)
Visual studio
あなたの回答
tips
プレビュー