init(&a,&b,&x);
if(x==1)
{
int c;
InputBox(num, 10, "你要取走几根?");
sscanf(num, "%d", &c);
while(c>b || c<1 || c>a)
{
InputBox(num, 10, "数字不符,请重新输入",NULL,NULL,0,0,false);
sscanf(num, "%03d", &c);
}
showPersonTake(c); //显示用户取走的数量
a = a - c;
showTotal(a); //显示剩余的总数
}
play(a,b);
getch();
closegraph();
}
/**************************************
play函数,电脑和玩家交互,电脑先执行
**************************************/
void play(int a,int b)
{
int m,n,z;
b=b+1;
char s[] = "COMPUTER WIN";
char s1[] = "YOU WIN";
char person[10]; //玩家输入的数据
while(a>0)
{
m=a%b;
//取余结果关系计算机下一步的走法
if(m!=1)
{
n=(m-1+b)%b;
showConputerTake(n);
a=a-n;
showTotal(a);
InputBox(person, 10, "你要取走几根?");
sscanf(person, "%03d", &z);
while(z>=b || z<1 ||z>a)
{
InputBox(person, 10, "数字不符,请重新输入",NULL,NULL,0,0,false);
sscanf(person, "%d", &z);
}
showPersonTake(z);
a=a-z;
showTotal(a);
if(a==0)
{
settextcolor(RED);
outtextxy(200, 400, s);
}
}
//如果取余结果为,计算机采取的措施
if(m==1)
{
if(a==1)//当总数还剩时,计算机只能取玩家胜利! C语言火柴游戏的程序设计+流程图(3):http://www.youerw.com/jisuanji/lunwen_15150.html