各位CSDN的小伙伴们,大家好,今天带来一款超简单的C语言小游戏(猜数字小游戏),内附超详细解说,希望各位可以多多支持博主---点赞+关注!!!
一.游戏算法的实现
电脑随机生成1~100之间的数字,玩家只需输入所猜数字,这时,电脑就会告诉玩家:“猜大了”o“r猜小了”。知道玩家猜中,游戏结束。
二.游戏过程的实现
首先我们先实现一个简单的游戏界面:在界面中,我们将游戏的两个主要功能在界面中显示:1.play(开始游戏) ,2.exit(退出游戏)。
void menu()
{
printf("*************************\n");
printf("*****1.play 0.exit*****\n");
printf("*************************\n");
}
接下来,我们进行游戏的实现,首先,利用rand()函数,生成一个随机数,但是,必须和srand()函数配合使用,不然每次产生的随机数相同。然后,我们将玩家所输入的数和随机数比较,给出猜大了或猜小了的提示,直到玩家猜中为止。
void game()
{
int ret = 0;
ret = rand() % 100 + 1;
while (1)
{
printf("请输入你猜的数:\n");
int s = 0;
scanf("%d", &s);
if (s > ret)
{
printf("你猜的大了,再猜猜\n");
}
else if (s < ret)
{
printf("你猜小了,再猜猜\n");
}
else
{
printf("恭喜你猜对了!\n");
break;
}
}
}
三.总结及注意事项
1.注意srand()函数是在主函数中的,而且srand和rand只能调用一次,时间戳(time(NULL))是用来作为srand()函数的返回值,使得rand()的随机数种子发生改变,避免每次产生的随机数相同。
2.srand()和rand的头文件都是#include<stdio.h>,时间戳的头文件是#include<time.h>
四.完整代码及运行结果
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*************************\n");
printf("*****1.play 0.exit*****\n");
printf("*************************\n");
}
void game()
{
int ret = 0;
ret = rand() % 100 + 1;
while (1)
{
printf("请输入你猜的数:\n");
int s = 0;
scanf("%d", &s);
if (s > ret)
{
printf("你猜的大了,再猜猜\n");
}
else if (s < ret)
{
printf("你猜小了,再猜猜\n");
}
else
{
printf("恭喜你猜对了!\n");
break;
}
}
}
int main()
{
int a = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d", &a);
switch (a)
{
case 1:
game();
break;
case 0:
printf("退出\n");
break;
default:
printf("选择错误,请重新选择:>\n");
break;
}
} while (a);
运行结果:
点赞加关注!!!!