目录
1.基本原理
2.分块目标及代码实现
1.基本原理
我们让电脑生成一个1~100范围内的随机数,我们输入一个值,电脑给出反馈如:猜大了或猜小了。以便我们可以缩小猜数字的区间,来猜到最后的答案。
2.分块目标及代码实现
和本人其他博客中的小游戏一样,我们先打印一个菜单,再获取玩家输入的值并给出反馈,若输入1则进行游戏,若为0则退出游戏,我们这里不再赘述,代码如下:
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do {
menu();
scanf("%d", &input);
if (input == 1)
{
printf("进行游戏\n");
printf("请输入数字\n");
game();
}
else if (input == 0)
printf("退出游戏");
else
printf("输入错误,请重新输入");
} while (input);
return 0;
}
我们使用do while语句来完成这一目标,do while可以很方便的在玩家输入之前就进行一次循环体打印出菜单。我们接下来主要讲述游戏具体的实现。首先我们需要电脑生成一个随机数,上述代码中的srand就是用来取一个随机种子,以至于我们每次进行的游戏电脑生成的随机数不同。但问题又来了,电脑生成的随机数是范围无限大的,而我们游戏中需要的是1~100的数字,我们使用生成的随机数模上100再加1,这样就得到了1~100之间的数字。生成了随机数之后,再将随机数与玩家输入的数相比较,再给出反馈。完整代码如下:
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
void menu()
{
printf("***********************\n");
printf("****** 1.play ******\n");
printf("****** 0.exit ******\n");
printf("***********************\n");
}
void game()
{
int i = rand()%100+1;
while (1)
{
int a = 0;
scanf("%d", &a);
if (a > i)
printf("猜大了\n");
if (a < i)
printf("猜小了\n");
if (a == i)
{
printf("猜对了,答案是%d\n", a);
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do {
menu();
scanf("%d", &input);
if (input == 1)
{
printf("进行游戏\n");
printf("请输入数字\n");
game();
}
else if (input == 0)
printf("退出游戏");
else
printf("输入错误,请重新输入");
} while (input);
return 0;
}
感谢大家的阅读,欢迎大家点赞评论,互关互注,祝大家万事如意。