通过一个游戏菜单提供游戏的选择选项,用户选择进入游戏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.
编辑