常胜将军
现有21根火柴,两人轮流取,每人每次可以取走1至4根,不可多取,也不能不取,谁取最后一楰火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军”。
代码
#include<iostream>
#include<stdlib.h>
#include<iomanip> //包含setw
using namespace std;
void huochai(int a)
{
int i;
for(i=0;i<a;i++)
{ if(i%5==0)
cout<<endl;
cout<<" ------>> ";}
}
int main()
{
int num=21;
int n;
do{
system("cls");
if(num==1)
{cout<<"最后一根火柴了! 你只能选择 你输了!!"<<endl; break;}
if(num==0)
{cout<<"你输了!!!!"<<endl; break;}
//cout<<"******************************************************************"<<endl;
cout<<" 常胜将军 "<<endl;
cout<<" "<<endl;
cout<<" 火柴数剩余数: "<<num<<endl;
huochai(num);
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" 请输入你选择的火柴数(1--4): ";
cin>>n;
while(1)
{
if(n>=1&&n<=4)
break;
cout<<" 输入错误!请重新输入(1--4): ";
cin>>n;
}
num=num-n;
cout<<" 电脑选择的火柴数是: "<<(5-n)<<endl;
num=num-(5-n);
system("pause");
}while(n);
// cout<<"******************************************************************"<<endl;
//huochai(21);
return 0;
}