抓糖果和辣椒游戏
取随机数
srand((unsigned)time(NULL));//根据时间设置随机数种子,使rand()产生随机数,随机数不相同
i = (int)(rand()%(n-1)+1);
i = (int)(rand()%10+10); //范围为10-20
srand(1);则产生的所有随机数相同。
玩家先开始
判断第一次输入几个会赢
#include "stdio.h"
int main()
{
int m,n,x;
int count,i;
printf("请输入测试次数:\n");
scanf("%d",&count);
for(i=0;i<count;i++){
printf("第%d次测试:\n",i+1);
printf("请输入糖果数量:\n");
scanf(" %d",&m);
if(m<=0){
printf("糖果数不可小于等于0!请重新输入糖果数量:\n");
scanf(" %d",&m);
}
printf("请输入每次最大抓取数量:\n");
scanf(" %d",&n);
if(n<=0){
printf("糖果数不可小于等于0!请重新输入所取的糖果数量:\n");
scanf(" %d",&n);
}
if(m%(n+1)==0)
printf("玩家第一次无论取几个糖果都会输\n");
else
printf("玩家第一次取%d个糖果必赢\n",m%(n+1));
}
}
判断加游戏
#include "stdio.h"
int main()
{
int m,n,x;
printf("请输入糖果数量:\n");
scanf(" %d",&m);
if(m<=0){
printf("糖果数不可小于等于0!请重新输入糖果数量:\n");
scanf(" %d",&m);
}
printf("请输入每次最大抓取数量:\n");
scanf(" %d",&n);
if(n<=0){
printf("糖果数不可小于等于0!请重新输入所取的糖果数量:\n");
scanf(" %d",&n);
}
if(m%(n+1)==0)
printf("玩家第一次无论取几个糖果都会输\n");
else
printf("玩家第一次取%d个糖果必赢\n",m%(n+1));
while(true){
do{
printf("请输入你想抓取糖果的个数:\n");
scanf(" %d",&x);
}while(x<1||x>m||x>n);
m=m-x;
printf("抓取成功!现在还剩%d个糖果\n",m);
if(m==0){
printf("你赢得了比赛,电脑要吃掉辣椒!");
return 0;
}
if(m%(n+1)==0) x=1;
else
x=m%(n+1);
m=m-x;
printf("电脑抓取了%d个糖果!当前糖果数剩余%d个\n",x,m);
if(m==0){
printf("电脑赢得了比赛,你要吃掉辣椒!");
return 0;
}
}
}
随机产生糖果数
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main()
{
srand((unsigned)time(NULL));
int m,n,x;
m = int(rand()%10+10); //rand()函数产生10-20范围内的随机数
n=3; //一次最多拿走n块糖
printf("当前有%d枚糖果和1个辣椒,每人每次只能拿取1-%d个糖果\n糖果拿完后需要拿辣椒Orz\n\n",m,n);
while(true)
{
do{
printf("请输入你想要拿取的糖果(1-3个):");
scanf(" %d",&x);
}while((x<1)||(x>n)||(x>m));
m=m-x;
printf("拿取成功!当前糖果数剩余%d个\n\n",m);
if(m==0)
{
printf("你赢得了比赛,电脑必须吃掉辣椒!\n");
return 0;
}
if(m%(n+1)==0) x=1;
else x=m%(n+1);
m=m-x;
printf("电脑拿取了%d个糖果!当前糖果数剩余%d个\n\n",x,m);
if(m==0)
{
printf("只剩下辣椒了,你输掉了比赛,请吃掉辣椒\n");
return 0;
}
}
}
电脑先开始
可赢可输,最开始电脑随机抓
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main()
{
srand((unsigned)time(NULL));
int m,n,x,i;
m=14;
n=3;
printf("当前有14枚糖果和1个辣椒,每次只能抓取1-3个糖果:\n");
i = (int)(rand()%(n-1)+1); //rand()函数产生随机数
m=m-i;
printf("电脑抓了%d个糖果,还剩%d个糖果\n", i,m);
while(true)
{
do{
printf("请输入你想要抓取的糖果(1-3个):\n");
scanf(" %d",&x);
}while((x<1)||(x>n)||(x>m));
m=m-x;
printf("抓取成功!当前糖果数剩余%d个\n",m);
if(m==0)
{
printf("你赢得了比赛,电脑必须吃掉辣椒!\n");
return 0;
}
if(m%(n+1)==0) x=1;
else x=m%(n+1);
m=m-x;
printf("电脑抓取了%d个糖果!当前糖果数剩余%d个\n",x,m);
if(m==0)
{
printf("只剩下辣椒了,你输掉了比赛,请吃掉辣椒\n");
return 0;
}
}
}
玩家必输(14*1情况下)
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main()
{
srand((unsigned)time(NULL));
int m,n,x,i;
m=14;
n=3;
printf("当前有14枚糖果和1个辣椒,每次只能抓取1-3个糖果:\n");
i = 2;
m=m-i;
printf("电脑抓了%d个糖果,还剩%d个糖果\n", i,m);
while(true)
{
do{
printf("请输入你想要抓取的糖果(1-3个):\n");
scanf(" %d",&x);
}while((x<1)||(x>n)||(x>m));
m=m-x;
printf("抓取成功!当前糖果数剩余%d个\n",m);
if(m==0)
{
printf("你赢得了比赛,电脑必须吃掉辣椒!\n");
return 0;
}
if(m%(n+1)==0) x=1;
else x=m%(n+1);
m=m-x;
printf("电脑抓取了%d个糖果!当前糖果数剩余%d个\n",x,m);
if(m==0)
{
printf("只剩下辣椒了,你输掉了比赛,请吃掉辣椒\n");
return 0;
}
}
}
随机产生糖果数,电脑按算法抓,可赢可输
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main()
{
srand((unsigned)time(NULL));
int m,n,x,i;
m=1;
n=3;
m = int(rand()%10+10); //rand()函数产生随机数
printf("当前有%d枚糖果和1个辣椒,每次只能抓取1-3个糖果:\n",m);
if(m%(n+1)==0) i=1;
else i=m%(n+1);
m=m-i;
printf("电脑抓了%d个糖果,还剩%d个糖果\n", i,m);
while(true)
{
do{
printf("请输入你想要抓取的糖果(1-3个):\n");
scanf(" %d",&x);
}while((x<1)||(x>n)||(x>m));
m=m-x;
printf("抓取成功!当前糖果数剩余%d个\n",m);
if(m==0)
{
printf("你赢得了比赛,电脑必须吃掉辣椒!\n");
return 0;
}
if(m%(n+1)==0) x=1;
else x=m%(n+1);
m=m-x;
printf("电脑抓取了%d个糖果!当前糖果数剩余%d个\n",x,m);
if(m==0)
{
printf("只剩下辣椒了,你输掉了比赛,请吃掉辣椒\n");
return 0;
}
}
}