目录
通过一个游戏菜单提供游戏的选择选项,用户选择进入游戏or退出游戏,若选择进入程序,则进行猜1-100的数字,猜数字游戏过程中通过提示用户“猜大了”或“猜小了”来完成该游戏,直到游戏结束,,用户可重新选择再来一局游戏。
根据游戏开始界面的提醒,选择1进入游戏,选择0退出游戏,同时通过一个循环来进行菜单的打印,若选择其他的数字,则提醒选择错误请重新选择。
游戏设计的基本思想是通过时间戳来实现其中所产生的随机数字,因为时间每一分每一秒都是不一样的,因而用其产生的随机数字也是不一样的。
在游戏的实现过程中,我们需要使用到rand()函数实现一个随机值的产生,因为其为库函数,所以需要引用标准头文件#include<stdlib.h>,因c标准库手册中提示我们需要使用srand函数(其头文件与rand函数相同),srand函数的大小为0-32767,用时间戳来生成随机数字,及time()使用时需要用到头文件#include<time.h>。最后,把srand函数放在do......while循环之前即可,通过游戏使你输入的数字与产生的随机数字进行比较,再用rand()%100+1来控制用户猜数字的范围。
完整代码如下:
//猜数字游戏
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("******************************\n");
printf("********** 1.play **********\n");
printf("********** 0.exit **********\n");
printf("******************************\n");
}
//rand 函数可以随机返回一个数
//返回一个0—RAND_MAX(32767)
void game()
{
int guess = 0;
//1.生成随机数
int ret = rand() % 100 + 1;//0-99 ->0-100
//2.猜数字
while (1)
{
printf("请猜数字;>");
scanf("%d", &guess);
if (guess<ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
#include<stdio.h>
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do {
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择!");
break;
}
} while (input);
return 0;
}
程序的运行结果:
1.
2.
3.