关于初学c的小伙伴来说,我们学习很多的东西但是没有办法系统的把他们运用的一起今天呢,一个小游戏讲我们初学的一些知识点串联一下,下面请看SUBJECT:
一.游戏界面的编写:
很简单的一个小界面
二.游戏内容
内容上主要用到了while循环和if else,使用while来重复执行这个猜数字的过程,如果没有想我这样给一个次数设定的话,该程序应该是一直执行指导猜出正确的数字为止,if else就是做一个提示的作用,降低一些猜数的难度。
我估计很多小伙伴可能不清楚的是这个rand()的作用,有些小伙伴知道这不就是一个随机函数吗?但是它不是一个伪随机函数,就是应该每次输出的值都应该是一样的啊,那这样每次猜的输出岂不都是一个数字吗?本质上应该是这样的,但是不是还有随机生成器srand函数吗,这个我们去主函数去说。
三.主函数
好的,我们来到了,主函数这里各位肯定都知道这里才是整个代码的核心部分,上面我们提到了rand和srand函数,那这个srand函数它是怎样来出这个随机值呢,这里调用的就是time函数,这个time函数是做什么用的呢,它会返回当前的⽇历时间,当time(NULL)时,就只会返回这个时间差值,如现在时间是2023年12.1 18:20:00到现在程序运行的这个时间的差值。所以我们把time(NULL)放入srand函数里面,这样我们就得到了一个随机的一个随机数,因为srand函数是unsigned int类型的所以我们把time强制转换为unsigned int类型,这样就完成了随机数的设定。
后面吗,就是一个do while循环的使用了,在do while 里面嵌套一个swich然后经过自己想要的设定和自定义的一些提示去做这样的一个小游戏。
因为很多初学的小伙伴一样,我又不是很会写如果有什么不足的或者有什么更好的用法和优化请在评论区,或者私信留言,就到这里了,我们下次再见!
源代码
代码放在最后,有需要的小伙伴可以自取:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game() {
int guess = 0; //设置一个猜想数字
int i = 0; //设置次数
int r = rand() % 100 + 1; //制造一个随机值,为所猜想的数,rand()需要包含一个stdlib.h的头文件
while(1){
printf("您一共有3次机会,现在已经用掉:>%d次\n", i);
printf("请输入所猜的数:> ");
scanf("%d", &guess);
if (r > guess)
{
printf("数有点略小\n");
}
else if (r < guess)
{
printf("数有点略大\n");
}
else {
printf("猜对啦 perfect\n");
break;
}
i++;
if (i == 3) {
printf("您失败了,正确答案是:> %d\n",r);
break;
}
}
}
//游戏界面
void subject() {
printf("*****************\n");
printf("***1:play game***\n");
printf("***2:exit game***\n");
printf("*****************\n");
}
int main() {
int mark = 0;//设置一个模式选择值
//给rand()一个随机值,用时间用时间做返回值,但要引用include<time.h>
srand((unsigned int)time(NULL));
do {
subject();
printf("请选择模式:> ");
scanf("%d", &mark);
switch (mark)
{
case 1: {
printf("进入游戏\n");
printf("所猜的数 1—100\n");
game();
break;}
case 2:
printf("退出游戏\n");
break;
default:
printf("请输入指定数字\n");
break;
}
} while (mark);
return 0;
}