- 首先介绍一下这款游戏
猜数字:电脑随机生成一个数字num,玩家来猜,如果猜的数比系统生成的num大,则提示“猜大了”,如果猜的数比系统生成的那个数字小,则提示“猜小了”,直到猜到生成的那个数字位置,提示“恭喜你!猜对了!”。
- 接下来展示一下我们要实现的效果
参考上面的图片我们总结出以下问题
- 首先我们需要一个菜单栏
- 输入1或0选择进入或退出游戏,结束游戏之后还需返回菜单栏页面
- 生成一个1-100的随机数
- 进入游戏后,对玩家猜的数字和系统生成的数字比较大小并且进行判断
对问题逐一解答
void menu() { printf("********************************************\n"); printf("**********1. 开 使 游 戏 ************\n"); printf("**********0.. 退 出 *************\n"); printf("********************************************\n"); }
菜单栏我们选择直接打印,为了使代码更有阅读性将其包装在函数中
do { menu(); printf("请选择(1 or 0):"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: break;//如果input为0直接结束do while语句 default: printf("输入错误,请重新输入\n"); } } while (input);
用户选择0或1执行退出或进入游戏我们选择switch case语句,如果进入游戏,结束游戏之后依然会继续跳出菜单栏,所以我们选择在外面加上一个do whlie语句
srand((unsigned int)time(NULL)); int num = rand()/100+1;
生成随机数我们选择rand函数,生成rand函数还需要先使用srand函数,srand函数里面需要放入随机值,我们生活中常见的随机值就是时间,所以我们把时间戳函数放入,再把rand函数%100+1这样我们生成的随机数就是1-100的。
int num = rand()%100+1; int guess = 0; printf("猜1-100中的数字\n"); while (1) { scanf("%d", &guess); if (num > guess) { printf("猜小了\n"); } else if (num < guess) { printf("猜大了\n"); } else { printf("恭喜你,猜中了!\n"); break; } }
对数字大小于随机数进行比较,并且提示猜大了或者猜小了,直到猜中为止。 对判断我们选择if else语句,在猜对之前不可以退出,所以循环上我们选择’1‘不停循环直到猜对遇到break为止。
- 将四个部分进行整合
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>//输入输出库函数需要的头文件 #include <time.h>//时间戳库函数需要的头文件 #include <stdlib.h>//生成随机数库函数需要的头文件 //猜数字游戏 void game() { int num = rand()%100+1; int guess = 0; printf("猜1-100中的数字\n"); while (1) { scanf("%d", &guess); if (num > guess) { printf("猜小了\n"); } else if (num < guess) { printf("猜大了\n"); } else { printf("恭喜你猜中了\n"); break; } } } void menu() { printf("********************************************\n"); printf("**********1. 开 使 游 戏 ************\n"); printf("**********0.. 退 出 *************\n"); printf("********************************************\n"); } int main() { srand((unsigned int)time(NULL));//库函数规定里面的值必须为unsigned int所以强制类型转换 int input = 0; do { menu(); printf("请选择(1 or 0):"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: break; default: printf("输入错误,请重新输入\n"); } } while (input);//输入0为退出,input为假,退出循环结束程序 }
这就是猜数字游戏的全部过程啦!如果觉得作者写的不错可以点赞关注一下,祝各位新年快乐~~!!