前言
下面我将详细介绍游戏的实现和代码的逻辑,以及如何限制猜数字的次数。
一、游戏要求
- 电脑自动生成1~100的随机数
- 玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束
要求解析
1.控制随机数的范围:a~b 公式: a + rand()%(b-a+1)
1~100就是 rand()%100+1
2.使用循环语句进行多次游戏,直到猜对为止。
不了解随机数的话,可以参考我的这篇文章《c语言如何生成随机数以及设置随机数的范围。(超详细)》
二、程序实现
1.生成游戏菜单
代码如下:
void menu()
{
printf("******************\n");
printf("**** 1.play ******\n");
printf("**** 0.exit ******\n");
printf("******************\n");
}
效果展示:
创建一个菜单函数,根据这个菜单玩家将决定 1.开始游戏 0.退出游戏
2.构建主函数
首先我们需要创建input变量,方便后面使用switch语句来控制是否进入游戏。
然后使用srand函数生成随机数种子。
在使用switch语句,来控制玩游戏,还是退出游戏。
使用do–while循环规划游戏的大致流程,并且可以实现多次游玩。
主函数总代码:
int main()
{
int input = 0;
srand((unsigned)time(NULL));生成随机数种子
do
{
menu();
printf("请选择");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("游戏结束");
break;
default:
printf("选择错误,请重新选择!!!!\n");
break;
}
} while (input);
return 0;
}
3.游戏函数的构建
这里需要构建game游戏函数的主体:
- 创建一个变量r来存储rand函数产生的随机数,随机数的范围是1~100
- 创建guess变量用来存储你输入的值
使用while循环和if语句来对你的输入的数字来进行判断是否正确。
game函数总代码:
void game()
{
int r = rand() % 100 + 1;
int guess = 0;
while (1)
{
printf("请猜数字:");
scanf("%d", &guess);
if (guess < r)
{
printf("猜小了");
}
else if (guess > r)
{
printf("猜大了");
}
else
{
printf("恭喜你,猜对了!!!");
break;
}
}
}
三、限制猜数字的次数
- 你需要在创建一个变量count来存储你要限制的次数
- 把while循环的表达式改成count
- 然后在while循环的最后添加count – – ;每循环一次就减1以此来控制循环的次数,以此来实现对猜数字次数的限制。
- 最后可以在添加一个if语句来弹出游戏失败的界面,以及告诉你答案是什么。
void game()
{
int r = rand() % 100 + 1;
int guess = 0;
int count = 5; 限制的次数
while (count)
{
printf("你还有%d次机会\n", count);
printf("请猜数字:");
scanf("%d", &guess);
if (guess < r)
{
printf("猜小了");
}
else if (guess > r)
{
printf("猜大了");
}
else
{
printf("恭喜你,猜对了!!!");
break;
}
count--;
}
if (count == 0)
{
printf("你失败了,正确答案是%d", r);
}
}
效果展示:
四、猜数字游戏代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("******************\n");
printf("**** 1.play ******\n");
printf("**** 0.exit ******\n");
printf("******************\n");
}
void game()
{
int r = rand() % 100 + 1;
int guess = 0;
int count = 5;
while (count)
{
printf("你还有%d次机会\n", count);
printf("请猜数字:");
scanf("%d", &guess);
if (guess < r)
{
printf("猜小了");
}
else if (guess > r)
{
printf("猜大了");
}
else
{
printf("恭喜你,猜对了!!!\n");
break;
}
count--;
}
if (count == 0)
{
printf("你失败了,正确答案是%d", r);
}
}
int main()
{
int input = 0;
srand((unsigned)time(NULL));
do
{
menu();
printf("请选择");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("游戏结束");
break;
default:
printf("选择错误,请重新选择!!!!\n");
break;
}
} while (input);
return 0;
}
下篇博文:【C语言分支结构】——用if,else语句实现分支结构,并通过if和else的多层嵌套来实现多条语句的控制https://blog.csdn.net/cz382487322/article/details/134189140?spm=1001.2014.3001.5502
总结
大家有什么问题欢迎在评论区留言。新人博主创作不易,希望大家动动小手点点赞和关注。