当我们学C语言学到一定程度时,不防试着做一个简单的游戏
下面我们就来实现一个简单又有趣的游戏——猜数字游戏
先介绍一下游戏规则
1.先让程序自动产生一个1-100的整数
2.猜数字,才对了,可以继续完游戏
3.猜错了,程序会告诉你,猜大了还是猜小了
4.游戏可以一直玩,除非自己退出游戏
思路1:我们一运行程序我们就可以对游戏进行选择,按照玩家的角度,我们可以制作一个简易的菜单来提示玩家选择,又要让游戏一直进行,这里我们可以用一个do ——while循环
代码如下
#include<stdio.h>
void menu()
{
printf("***********************\n");
printf("****** 1.paly *******\n");
printf("****** 0.exit *******\n");
printf("***********************\n");
}
int main()
{
int input = 0;
//游戏进来先打印一个菜单,所以我们可以自定义一个函数
do
{
menu();//打印菜单
printf("请选择:\n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("猜数字\n");//开始游戏
break;
case 0:
printf("退出游戏\n");//退出游戏
break;
default:
printf("选择错误,重新选择\n");
break;
}
} while (input);
//这里是一个妙用,选择0时,结束循环,相当于退出游戏
return 0;
}
相信大家这里都很容易看得懂思路
接下里就是要实现我们的游戏进行的部分了
这里先给大家讲一下随机数是如何产生的
在 C 语言当中使用随机数要用到 rand 函数和 srand 函数。
int rand():返回值为随机值,参数为空,通过 rand 函数就会产生一个随机数。
void srand(unsigned int seed):返回值为空, 就是设置随机种子的,当我们不设置随机种子的时候,默认设置的种子为 1,也就是srand(1)。
使用这些函数要引用头文件 #include<stdlib>和#include<time.h>
我们可以在主函数内调用srand函数,让后再自定义一个game函数,把srand函数放到game函数内
代码如下:
#include<stdlib> //使用srand和rand函数要引用的头文件
#include<stdio.h>
#include<time.h>
void menu()
{
printf("***********************\n");
printf("****** 1.paly *******\n");
printf("****** 0.exit *******\n");
printf("***********************\n");
}
void game()
{
//猜数字游戏的实现
//生成随机数 rand返回的是一个0到32737的数字
int ret = rand() % 100 + 1; //%100的余数是0到99,然后加1;
//printf("%d\n", ret);不能打印出来直到结果
//猜数字
int main()
{
int input = 0;
//游戏进来先打印一个菜单,所以我们可以自定义一个函数
do
{
menu();//打印菜单
printf("请选择:\n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("猜数字\n");//开始游戏
//既然选择了游戏,我们就要设置一个进入游戏的入口
game() //自定义一个game函数作为游戏入口
break;
case 0:
printf("退出游戏\n");//退出游戏
break;
default:
printf("选择错误,重新选择\n");
break;
}
} while (input);
//这里是一个妙用,选择0时,结束循环,相当于退出游戏
return 0;
}
写到这里,就实现了随机数生成。
然后就是猜数字的部分了,为了让玩家可以一直猜,直到猜到位置,所以这里我们使用while循环
代码如下
int guess = 0; //定义一个要猜的数字
while (1)
{
printf("请猜数字:");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
写到这里程序就写完了,把这些代码组合起来就是这样的:
#include<stdlib> //使用srand和rand函数要引用的头文件
#include<stdio.h>
#include<time.h>
void menu()
{
printf("***********************\n");
printf("****** 1.paly *******\n");
printf("****** 0.exit *******\n");
printf("***********************\n");
}
void game()
{
//猜数字游戏的实现
//生成随机数 rand返回的是一个0到32737的数字
int ret = rand() % 100 + 1; //%100的余数是0到99,然后加1;
//printf("%d\n", ret);不能打印出来直到结果
//猜数字
int guess = 0; //定义一个要猜的数字
while (1)
{
printf("请猜数字:");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
//游戏进来先打印一个菜单,所以我们可以自定义一个函数
do
{
menu();//打印菜单
printf("请选择:\n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("猜数字\n");//开始游戏
//既然选择了游戏,我们就要设置一个进入游戏的入口
game() //自定义一个game函数作为游戏入口
break;
case 0:
printf("退出游戏\n");//退出游戏
break;
default:
printf("选择错误,重新选择\n");
break;
}
} while (input);
//这里是一个妙用,选择0时,结束循环,相当于退出游戏
return 0;
}
如果大家学会了,可以点个赞
谢谢大家