猜数字游戏
大家小时候一定玩过猜数字游戏吧。猜数字游戏是令游戏随机产生一个100以内的正整数,然后玩家输入一个数对其进行猜测,接着需要你编写程序自动对其与随机产生的被猜数进行比较,如果你输入的数比随机产生的数太大,则会提示“太大了”;如果你输入的数比随机产生的数小了,则会提示“太小了”;如果输入的数与随机产生的数相等,则会提示“恭喜你,猜对了”。游戏的玩法大概就是这样,简单却有意思,悄悄告诉你:(最快的方法就是二分查找法)。
首先,我们可以打印一个简易的游戏菜单。输入1则表示开始玩游戏,输入0则表示退出程序,不玩游戏。
void menu()//打印菜单
{
printf("****** 1.play 0.exit ******\n");
}
接下来我们可以输入主函数,确定游戏选项。此处用srand和time函数来生成时间戳产生一个随机值(0-32767)。然后进入循环体,请选择游戏选项,输入0则退出游戏;输入1则进入游戏;输入其它的则会提示输入错误,请重新输入。
int main()
{
int input=0;
srand((unsigned int)time(NULL));
//拿时间戳来设置随机数的生成起始点
//time_t time(time_t*timer)
//time_t本质上是个长整型(即long型)
//使用time记得头文件#include <time.h>
//NULL是空指针,不想让它产生什么实际效果
do//do while至少能够进行一次游戏
{
menu();
printf("请选择>:\n");
scanf("%d",&input);
switch(input)
{
case 0:
printf("退出游戏\n");
break;
case 1:
game();//进入游戏
break;
default:
printf("选择错误\n");
break;
}
}while(input);
return 0;
}
然后我们就要开始编写游戏玩法啦。首先得生成一个1-100的随机数,上一步我们通过时间戳生成了一个0-32767的随机数,此时我们将其模上一个100再加1,即可产生1-100的随机数。此时我们再输入一个数与其进行比较,如果输入的数较大,则提示“猜大了”;如果输入的数较小,则提示“猜小了”;如果刚好等于,就提示“恭喜你,猜对了”。
void game()
{
//生成一个随机数
int ret=0;
//srand(1);
int guess;//接收猜的数字
ret=rand()%100+1;//生成1-100之间的随机数
//rand会在0-RAND_MAX(32767)中产生一个随机整数
//RAND_MAX需要头文件#include <stdlib.h>
while(1)
{
printf("请猜数字:>\n");
scanf("%d",&guess);
if(guess>ret)
{
printf("猜大了\n");
}
else if(guess<ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了");
break;
}
}
}
对了,还有引用rand和time函数需要用到的头文件
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
如此简单且好玩的游戏就这样简单的三步就完成了,是不是非常的有趣,大家快去做完玩玩吧。