作者在 2011-11-19 23:13:58 发布以下内容
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int xgnum;//全局变量,当前小棍的数目
void mainMenu();//提示
int getxgNum(int rexg);//机器取棍数目
int rand1_3();//机器随机取棍数目
void main()
{
int userget;
int macget;
bool overleap=false;//游戏结束标志
mainMenu();
time_t t;
srand((unsigned) time(&t));
//初始小棍的数目大于10小于20
while(xgnum<10)
{
xgnum=1+(int)(20.0*rand()/(RAND_MAX+1.0));
}
printf(" 计算机随机产生%d个小棍\n",xgnum);
while(!overleap)
{
printf("请输入你要取走的小棍数目(1,2,3):");
scanf("%d",&userget);
while(userget<1||userget>3)
{
printf("输入数目错误请重新输入\n");
printf("请输入你要取走的小棍数目(1,2,3):");
scanf("%d",&userget);
}
xgnum=xgnum-userget;
printf("还剩%d个小棍\n",xgnum);
if(xgnum==1)
{
printf("用户赢了\n");
overleap=true;
}
else
{
macget=getxgNum(xgnum);
xgnum=xgnum-macget;
printf("机器拿走了%d个小棍\n还剩%d个小棍\n",macget,xgnum);
if(xgnum==1)
{
printf("机器赢了\n");
overleap=true;
}
}
}
}
//机器取棍数目
int getxgNum(int rexg)
{
int tmp;
tmp=rexg%4-1;//这个是算法的关键
if(tmp==-1)
return 3;
else if(tmp==0)
return rand1_3();
else
return tmp;
}
//机器随机取棍数目
int rand1_3()
{
int tmp;
tmp=(int)rand()%3;
if(tmp==0)
tmp=3;
else if(tmp==1)
tmp=1;
else
tmp=2;
return tmp;
}
//全局变量,当前小棍的数目
void mainMenu()
{
printf("...........欢迎来玩小棍游戏!................\n");
printf("............介绍下游戏规则...................\n");
printf("...1 每次只能取走1,2,3个小棍.................\n");
printf("...2 当用户取过小棍,还剩一个时,用户赢......\n");
printf("...3 当机器取过小棍,还剩一个时,机器赢......\n");
}
#include<time.h>
#include<stdlib.h>
int xgnum;//全局变量,当前小棍的数目
void mainMenu();//提示
int getxgNum(int rexg);//机器取棍数目
int rand1_3();//机器随机取棍数目
void main()
{
int userget;
int macget;
bool overleap=false;//游戏结束标志
mainMenu();
time_t t;
srand((unsigned) time(&t));
//初始小棍的数目大于10小于20
while(xgnum<10)
{
xgnum=1+(int)(20.0*rand()/(RAND_MAX+1.0));
}
printf(" 计算机随机产生%d个小棍\n",xgnum);
while(!overleap)
{
printf("请输入你要取走的小棍数目(1,2,3):");
scanf("%d",&userget);
while(userget<1||userget>3)
{
printf("输入数目错误请重新输入\n");
printf("请输入你要取走的小棍数目(1,2,3):");
scanf("%d",&userget);
}
xgnum=xgnum-userget;
printf("还剩%d个小棍\n",xgnum);
if(xgnum==1)
{
printf("用户赢了\n");
overleap=true;
}
else
{
macget=getxgNum(xgnum);
xgnum=xgnum-macget;
printf("机器拿走了%d个小棍\n还剩%d个小棍\n",macget,xgnum);
if(xgnum==1)
{
printf("机器赢了\n");
overleap=true;
}
}
}
}
//机器取棍数目
int getxgNum(int rexg)
{
int tmp;
tmp=rexg%4-1;//这个是算法的关键
if(tmp==-1)
return 3;
else if(tmp==0)
return rand1_3();
else
return tmp;
}
//机器随机取棍数目
int rand1_3()
{
int tmp;
tmp=(int)rand()%3;
if(tmp==0)
tmp=3;
else if(tmp==1)
tmp=1;
else
tmp=2;
return tmp;
}
//全局变量,当前小棍的数目
void mainMenu()
{
printf("...........欢迎来玩小棍游戏!................\n");
printf("............介绍下游戏规则...................\n");
printf("...1 每次只能取走1,2,3个小棍.................\n");
printf("...2 当用户取过小棍,还剩一个时,用户赢......\n");
printf("...3 当机器取过小棍,还剩一个时,机器赢......\n");
}