今天我用C语言写了一个简单的猜数字游戏。当把遇到的问题都解决时,以及想实现的功能都实现时,挺有成就感的。
1、菜单
一个游戏一般都有一个菜单,所以我写了一个menu()函数(比较简陋哈)。
2、生成一个随机数 1~100
这个需要用到两个函数rand和time,rand用于生成随机数,这两个函数的头文件我放在menu()函数的上面。
3、猜数字
以上两个功能的实现我都写在game()函数里。在写这个函数的时候我不小心把要输出的内容写到了scanf里,导致当我选择1时的运行结果是把“猜小了”连续打印了5次。
代码如下(示例):
int main()
{
int input = 0;//输入0或1选择是否玩游戏
srand((unsigned int)time(NULL));
//这是rand函数的定义方法,它的返回类型是无符号整型
//time定义了一个时间戳
int ret1 = 0;
do
{
menu();//菜单
printf("请输入(0/1):");
scanf("%d", &input);
//是否继续玩的选择逻辑
if (1 == input)
{
game();
}
else if (0 == input)
{
printf("退出游戏!\n");
break;
}
else
{
printf("选择错误,请重新选择!\n");
}
} while (1);
return 0;
}
代码如下(示例):
#include
#include //rand函数的头文件
#include //time函数的头文件
//定义一个菜单函数
void menu()
{
printf("****************************\n");
printf("*******caishuzi-game********\n");
printf("******* 1.start ********\n");
printf("******* 0.over ********\n");
printf("****************************\n");
}
//定义一个游戏函数
void game()
{
//1、生成一个随机数 1~100
int ret = rand() % 100 + 1;
/*rand是生成随机数的函数
这个随机数%100时生成的是0~99的数,但是我需要的是1~100,所以加1*/
//printf("%d\n", ret);
//2、开始猜数字,只能猜5次
int guess_num = 0;
int i = 0;
for (i = 1; i <= 5; i++)
{
printf("请输入你猜的数字:>");
scanf("%d", &guess_num);
if (guess_num < ret)
{
printf("猜小了!!!\n");
}
else if (guess_num > ret)
{
printf("猜大了!!!\n");
}
else
{
printf("恭喜你猜对了,一共猜了%d次!\n", i);
break;
}
}
//如果超过5次回到菜单界面
if (6 == i)
{
printf("不好意思,你的机会用光了!答案是%d\n", ret);
}
}
注意:1、menu()函数和game()函数我建议写在main()函数的上面,我那时候写在了下面就弹出警告说我未定义,我看的难受,结果发现放在上面就不会。
2、然后主函数那个退出游戏那里记得写一个break,我当时没写,然后测试的时候发现,当我选择退出游戏的时候返回的是菜单,可是我想让它直接结束。
:
以上就是我今天要讲的内容,本文大致描述了如何用C语言写一个简单的猜数字游戏,希望能对大家有一点点帮助。