(1)游戏开始页面可以选择是否开始游戏;
(2)将系统产生的随机数控制在1~100;
(3)根据玩家输入数字的大小进行提示;
(4)玩家可以一直游玩,不用重复运行游戏。
2.设计思路及知识点:(1)首页实现:使用 printf 将符号及相关提示输出即可;
(2)功能实现:
rand():生成一个 0~32767 的随机数,将随机数 ret = rand() %100 + 1;即将系统生成随机数进行处理,转变成1~100的随机数;然而,调用rand() 函数前需要使用 srand() 对生成器进行设置;
srand():设置一个随机起点;如果将括号内写入具体数字,每次生成随机数将一样,括号里也需要一个随机值,这时可以使用“时间戳”来完成,但是需要强制类型转换为 unsigned int 。因为我们只需要获取一次时间戳,所以将此函数调用放在主函数的循环外。
time():获取时间戳。
while()循环:设置一个循环,让玩家可以一直猜数字,直到猜对为止。
scanf("%d",&i):定义一个变量 i ,用于存储玩家输入的数字。
if...else...:用于判断玩家所猜数字是否正确,若正确则使用 break 语句跳出循环,不正确则提醒玩家猜大了还是猜小了。
(3)游戏实现:
do while() 循环:因为程序需要先执行一遍再进入循环。
scanf():让玩家根据提示输入数字决定是否进入游戏。
switch()分支语句:根据玩家输入的选项进行相应的操作。
3.代码展示:#define _CRT_SECURE_NO_WARNINGS #include4.运行结果#include #include void menu() { printf("************************n"); //首页 printf("******按'1'进入游戏*****n"); printf("*******否则将退出*******n"); printf("************************n"); } void game() { int i = 0; int ret = rand()%100+1; //将随机数控制在1~100 while (1) { printf("请输入数字:"); scanf("%d", &i); //玩家输入数字,然后程序进行比较 if (i < ret) { printf("猜小了,大胆点!!!n"); } else if (i > ret) { printf("猜大了,收敛点!!!n"); } else { printf("恭喜你猜对了!!!n"); break; //猜对之后结束本次游戏,回到首页 } } } int main(){ int k = 0; srand((unsigned int)time(NULL)); //获取一次时间戳,生成随机值 do { menu(); //开始菜单页面 printf("是否开始游戏:"); //选择是否开始游戏,‘1’开始,任意键退出 scanf("%d", &k); switch (k) { case 1: game(); //开始游戏,调用游戏功能函数 break; default: printf("您已退出游戏n"); break; } } while (k == 1); //可循环进行游戏 return 0; }



