私のプログラムはつまようじのゲームをプレイするように作られています、私はしばらくそれで立ち往生しています。目標は、コンピューターに23のスタックからつまようじを引き出すことであり、人間も同じことをします。これまでのところ、私のロジックは機能していないようです。プレイヤーはつまようじの量を引き出すことができ、それは合計から取り出されていますが、コンピューターがつまようじを取り出すとき、それは1つのつまようじだけを取ります。私はプログラムに、残っている数とコンピューターが取り出す数を言わせました。コンピュータは常に1つのつまようじを取り出すので、スタックには常に1つのつまようじが残っているようですが、これは明らかに数学的に正しくありません。
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
int main()
{
int toothpicks = 23, human, comp;
cout<<"TOOTHPICKS!!!!!" <<endl;
while (toothpicks >0)
{
cout<<"Human, take your toothpick(s)! But only between 1 and 3 toothpick(s), Thanks! ";
cin>>human;
toothpicks = toothpicks - human;
cout<<toothpicks <<" toothpick(s) remaining" <<endl;
if (toothpicks = 0)
{
cout<<"Human! You have prevailed!"<<endl;
break;
}
if (toothpicks >4)
{
comp = 4 - human;
cout<<"The computer took " <<comp <<" toothpick(s)" <<endl;
}
else if (toothpicks = 2)
{
comp = 1;
cout<<"The computer took " <<comp <<" toothpick(s)" <<endl;
}
else if (toothpicks = 3)
{
comp = 2;
cout<<"The computer took " <<comp <<" toothpick(s)" <<endl;
}
else if (toothpicks = 4)
{
comp = 3;
cout<<"The computer took " <<comp <<" toothpick(s)" <<endl;
}
else if (toothpicks = 1)
{
comp = 1;
cout<<"The computer took " <<comp <<" toothpick(s)" <<endl;
}
toothpicks = toothpicks - comp;
cout<<toothpicks <<" toothpick(s) remaining";
if (toothpicks = 0)
{
cout<<"The computer has prevailed!"<<endl;
break;
}
}
_getche();
return 0;