解説をお願いします。
どこを変えればよいのでしょうか?
#include<stdio.h>
int main(void)
int n,m,x;
char my_turn;
printf("最後にタバスコを取った側がピザを食べます\n");
printf("タバスコの数?"); scanf("%d",&n);
printf("1回にタバスコを振れる最大の数?"); scanf("%d",&m);
if(n < 1 || m < 1)
return 0;//負数の入力を拒否します
for(my_turn = 1; n!=0; my_turn ^=1){ *1
if(my_turn){
x = (n - 1)%(m + 1);//なぜこの様な式になるのかを特に教えてください。
if(x == 0)
x =1;
printf("私は %d 回タバスコを振ります\n",x);
}else do{
printf("何回振りますか?");
scanf("%d",&x);
}while(x <= 0 || x > m || x > n);
n = n - x;
printf("残りは %d 回です\n",n);
}
if(my_turn)
printf("あなたの負けです\nおいしく召し上がれ");
else
printf("私の負けです\nいただきます");
return 0;
}
問題の条件を入力した瞬間に,先手か後手かどちらか必勝かが分かります.
そこで,先手必勝の場合はコンピュータが先手を選択し,後手必勝の場合は,コン
ピュータは必ず後手を勝手に選択する処理を追加し,人間がコンピュータに絶対に
勝てないプログラムに変更する、
お礼
ありがとうございました^^