猜数字小游戏
本文介绍了一个基于控制面板的C语言猜数字小游戏,旨在激发初学者对编程的兴趣。游戏通过三个主要函数实现:menu()显示菜单,Game()处理数字比较逻辑,main()控制游戏流程。系统随机生成1-100的数字,玩家有8次猜测机会,程序会提示数字大小并显示剩余次数。文章详细解析了srand()和rand()函数的随机数生成原理,以及游戏的核心判断逻辑。该游戏虽然简单,但涵盖了C语言的函数调用、条件判
一、目的
为了增加对c语言的学习兴趣,我们今天将学习一个基于控制面板的猜数字小游戏,希望这个代码能够激起新学者对c语言的兴趣,也同时编译完成可以分享给自己的朋友试玩。
二、编译的基本思路
利用函数来完成猜数字游戏,包括菜单函数,处理函数,主函数三大部分,对其分别处理来实现。
菜单函数menu,利用printf语句进行我们所想要的菜单样式。
处理函数Game,通过传进的数字与随机生成的数字进行比较,用if语句进行判断,若输入的数大于随机生成的数字,则输出你所输入的数大于所猜测的数字,反之则小于。若刚好相等则输出恭喜玩家猜对数字,游戏胜利。
设置猜测的次数,创建一个变量来计算每次判断结束后的次数,再使用判断语句对我们设定的次数比较,若相等则游戏提前结束,反之游戏正常进行。
三、代码的实现
函数部分
menu
void menu() {
printf("猜数字游戏1-100共八次机会\n");
printf("-----选择1开始-----\n");
printf("-----选择0结束游戏\n-----");
}
Game
int Game(int a, int b) {
if (a > b) {
printf("输入的数字大了\n");
} else if (a < b) {
printf("输入的数字小了\n");
} else {
printf("恭喜你猜对了\n");
}
return 0;
}
主函数部分
int main() {
int n;
int count = 0, count1 = 0;
int c = 0;
menu();
do {
scanf("%d", &count);
if (count == 1) {
srand((unsigned)time(NULL));
count1 = rand() % 100 + 1;
c = 0;
printf("游戏开始!你有8次机会。\n");
while (1) {
printf("请输入你所猜的数字(1-100):");
scanf("%d", &n);
Game(n, count1);
c++;
if (n == count1) {
printf("你用了%d次猜出答案!\n", c);
break;
}
if (c == 8) {
printf("游戏结束,正确答案是:%d\n", count1);
break;
}
printf("你还有%d次机会!\n", 8 - c);
}
}
} while (count != 0);
printf("感谢游玩!\n");
return 0;
}
在这段代码中,输入的变量count传值给menu函数,来进行游戏的开始和结束的判断,即输入1开始游戏,0结束游戏。srand()函数是随机生成数字的,time(NULL)获取当前系统时间,(unsigned)
将时间值转换为无符号整数,符合srand
函数的参数要求。原理:通过使用不断变化的系统时间作为种子,确保每次运行程序或开始新游戏时,生成的随机数序列都不同。rand()
函数生成一个 0 到最大整数之间的随机整数,每次生成的是固定值,需要搭配srand((unsigned)time(NULL))来实现每次生成的数都不同。% 100
操作将随机数限制在 0-99 的范围内,+ 1
操作将范围偏移到 1-100,符合游戏设计需求,最终结果赋值给count1
,作为本轮游戏的目标数字。提示可以通过%上不同的数对范围的设置。
将输入的的n,和随机生成的数count1传给函数Game进行运算。变量c在每次计算完+1,进行输入的次数计算,最后通过if语句对输入的变量c和设置的猜测次数进行判断若相等break结束,8-c用来提醒所剩的猜测次数。
四、头文件的包含
#include <stdio.h>标准头文件
#include <time.h>使用time函数所需要的头文件
#include <stdlib.h>使用srand和rand所需要的头文件
五、总结
这款猜数字游戏虽然简单,但涵盖了 C 语言的核心知识点
下篇预告:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水
更多推荐
所有评论(0)