在多文件中用C语言来实现简单的猜数字游戏

今天我们要用C语言来实现简单的猜数字游戏,目的是为了加强对二分查找的理解以及学会用多文件来完成一个项目。所以今天的猜数字游戏我们和往常不一样,我们选择在多文件中实现,我们今天要创建两个源文件(game.c和main.c),再创建一个头文件 (game.h),用三个文件来实现参数字的所有代码。

1,头文件的创建,就是.h的文件

编写头文件的主要原因是我们在遇到比较大型的项目时,可能出现大量的源文件,所以我们只要在头文件中声明这些东西,然后在源文件中直接包含头文件,当我们在写源文件的时候就不用一直写这些声明函数等等,这样的操作可以节省大量的时间。下边要注意的是:头文件里边放的时一些比较虚的东西,比若说函数的声明、宏定义、全局变量的声明等等。以下是我们在编写猜数字游戏的时候要用到的一些函数、全局变量、宏定义等等。代码后的注释里边会详细介绍我们所有的声明,大家可以仔细阅读。

game.h文件:
在这里插入图片描述

2,下边我们要介绍的就是第一个源文件(game.c)这个源文件。

在game.h的这个源文件里边我们主要编写的是简单菜单的实现和要进行的game游戏的逻辑。菜单的实现比较简单,我们这里不做介绍。game模块要注意以下几点。
(1)要实现猜数字游戏,我们就得事先设置一个随机数,这个随机数我们借助srand函数来实现,里边的参数是time,我们给time内的值赋值为NULL,现在还只是种下了一个种子,还要让种子开花结果,我们就得用rand来实现,让这个随机种子生成。
(2)我们在猜数字的时候希望的是让它生成0~100,所以我们采用生成的随机数来模100再加1(这里要注意加1哦,不然就生成1到99了),这样就能清晰的来表示我们想要的范围了。
(3)用户在猜数字的时候,一次猜对的可能性很小,可能要进行多次的猜测,所以在我们的game中一定会有死循环。死循环放的位置一定要注意:一定要放在随机数生成的后边,而不是前边,我们要保证随机数的生成在用户没有猜对之前不能变化,不然这个游戏用户可能永远也猜不到生成的随机数。
(4)我们game.c中还进行了宏定义,这样做的目的是为了以后再改随机数范围的时候修改的次数少一些,要是需要修改,我们直接修改宏定义即可,安全又快捷。

下边就是我们game.c里边放的具体代码,每一行后边也解有相应的注释,希望对大家有帮助。

game.c
菜单的代码:
在这里插入图片描述

猜数字的代码:
在这里插入图片描述

3,下边我们来介绍第三个源文件(main.c)

这个源文件中放的是决定游戏是否进行的代码。以下几点应该注意:
(1)我们上边的菜单中已经写了玩游戏时需要用户输入数字,1表示进行游戏,0表示你自己想退出。除此之外我们还要考虑要是用户输入其他的数字我们应该提醒用户重新输入。以上逻辑刚好符合switch语句中的逻辑,就是匹配到那个 就执行那个代码块。
(2)我们要想到的是游戏就是给用户玩的,所以在用户进行一轮游戏之后,不能让游戏自动退出,要进行游戏的死循环,让用户不停的选择游戏。就好比我们玩的王者荣耀、吃鸡一样,一把打完后游戏觉不会直接退出,它会让用户不停的玩,直到用户自己玩累了,自己选择退出。死循环的位置一定是菜单之前。
(3)进行死循环我们采用while循环,我们用到英文单词quit,在设置while循环的时候,先给quit给0,然后在判断里边判断 !quit,这样写让人人在读取的时候能更加明白,!表示的就是不退出,不退出则游戏继续进行。

以下是main.c的具体代码:
在这里插入图片描述
通过以上三个文件的编写,我们的猜数字游戏就已经写好了,下边来给大家展示运行结果。
(1)用户选择游戏并进行猜测,直到猜对:
在这里插入图片描述

注意后边的提示语,结束的时候不是直接退出,而是继续让用户选择游戏。
(2)用户自己选择退出:
在这里插入图片描述
(3)用户输入其他数字:
在这里插入图片描述

好了,以上就是基于二分查找的思想,用C语言在多文件下编写猜数字游戏的所有内容,希望对大家有所帮助。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值