扫雷游戏的实现(下)

简介: 扫雷游戏的实现(下)

2.棋盘的初始化

二维数组创立好后,我们首先要对两张棋盘分别进行初始化,这里我们就要构建一个初始化函数,我命名为defineboard,函数要传入二维数组本身,以及我们的RWOS和COLS,我们既然初始化就要对整体的11*11初始化,在前面也提到这个事情,这里我们定义第一张游戏棋盘的空格全盘由*来初始化,第二张则是由0来定义,用1表示雷,注意,我们这里的’1‘,’0‘ ’*‘都是字符,这个要记住,后面很重要,先留一个悬念。函数内部的写法如下:

注意,我们要在头文件内部也声明一下

注意我们传参的对象是,数组,行列的整数以及一个字符,这里这个字符很巧妙,因为这样我们就可以灵活传入0 1或*,只需要写一个函数即可实现 。

这些都写好后,我们游戏函数就写好了创建的过程

再次拿出这张图,我们接下来就开始打印棋盘

3.打印棋盘,在我们创建好并初始化好棋盘之后,我们就要打印棋盘了,打印之前,我在棋盘创建的结尾说到我们玩游戏时要利用的是第一张*棋盘而不是带有数字的棋盘,所以,我们这里构建好打印函数后首先要打印*棋盘 ,我这里构建了一个printfboard函数用来打印棋盘,我们输入的参数还是二位数组showboard以及行和列,值得注意的是我们这里输入的就是9*9了,因为我们打印出来的结果就是9*9,函数内部主题如下

首先我们要在函数开始和结束打印出两行分割线,,然后利用双循环来依次打印出我们的棋盘的所有位置的字符,注意我这里是从1开始到row结束,同时你要注意我传入二维数组的行数和列数,是ROWS和COLS,这就为我提供了最外层一个空行,空行除了用来放字符0,也可以用来标识行号和列号,比如我的第一个循环i从0开始,与后文的循环i,j从1开始,这样就完美的不仅避开了串行也实现了对应标识,效果如下:

打印完第一个棋盘,我们就进入下一步,布雷。

4.布雷:

在扫雷游戏中,布雷是随机的,也就是说,我们需要构建一个随机的行和列的生成的程序,使雷可以在9*9的棋盘上随机散步,联想到之前学过的猜数字游戏生成的数字的方式,我们这里也采用相同的方式:如图:

       

利用srand函数,传入一个时间戳的随机参数,从而构建一个随机数的种子,然后:

我们创建一个布雷的函数setboard,同样传入二维数组和行列,在这里我们打算布置10颗雷,如同ROW和COL一样,我们也在头文件中将其10定义为BOOM(在这里我不演示了,就像图中显示的一样,我们这里利用while循环,同样利用count从BOOM到0自动跳出循环的特点,在循环内部生成10颗雷,用rand()%row+1和rand()%col+1来随机一个1到10的随机数,这样,我们的布雷函数就写好了。

在布雷的后面,我在这里加上了一个打印雷区布局棋盘的函数(其实没必要,我主要是为了测试游戏的运行逻辑,你实际上不用写这个函数,只打印*棋盘即可)

在布雷结束后,我们就即将进入最后一个步骤,即排查雷和判定游戏结果。

5.排查雷和判定游戏输赢:

我将排查雷的函数命名为cleanboard函数,在这个函数内部,我们就需要两个棋盘都要打印了,因为游戏结束时无论输赢都会将布雷棋盘显示出来告诉玩家你踩雷了。函数内容如下:

由于这里要求我们输入坐标,所以我们默认scanf输入x和y作为行和列,那么对于输入者,我们除了输入规定的坐标外,还有可能输入坐标范围外的坐标,所以我们这里首先考虑两个大的分支,即在坐标范围内和在坐标范围外,就如同我写的else语句情况,首先确认如果输入到坐标范围外,即输出无效的输入,倘若输入坐标范围内,我们就考虑踩雷和不踩雷两个分支情况:1.假设踩雷,即你选的坐标对应的为字符’1‘,那么输出踩雷语句同时引用打印棋盘函数将雷区棋盘打印出来,游戏结束下一轮开始。2.假设没踩雷,那么我们就要扫描这个坐标为中心的3*3范围内有几颗雷并将数目以字符串的形式显示在你选择的坐标对应的位置上,比如有3颗雷,则这个位置对应为3,如果你71颗空位都选出来,则判定游戏结束,输出成功语句,进行下一局游戏,对于这个71个空位,我们采用循环的形式,也就是定义一个win变量初始化为0,每成功一次就加一,直到加到等于总格子数减去雷数即判定玩家成功,并显示雷区棋盘。

以上就是我们这个函数执行起来的逻辑,下面我们来详解。

a.对于如何将字符变为对应的3*3范围内对应的雷区个数的字符,这里我们提供一种方法,首先,我们要明确一个概念,C语言中,每一个字符都对应一个ASCII值,相应的字符串相减得到的结果是其ASCII值相减的结果,例如’1‘-’0‘就等于1,因为’1‘与’0‘ASCII值差1,同理,一个字符加上对应的整型也相当于ASCII值去参与运算,从而得出一个ASCII值对应的字符,有了这个概念,我们就这样实现雷区的显示,首先在没踩雷的分支语句内构建一个函数research,我们输入参数为雷区棋盘和我们输入的坐标x和y,然后进入函数内部,如图:

我们在这个函数内部,让它返回一个整型,其目的是与’0‘相加得出一个对应的字符来显示雷的个数,我们让这个函数返回以x和y为中心的周围3*3格子内的对应的字符分别于’0‘相减从而得出一个总的ASCII值,这样我们就成功的实现了显示雷区的操作。

最后一个函数构建完毕后,我们的扫雷游戏就可以正常运行了!很简单是不是?但这个小游戏依旧有很多值得优化的点,比如插旗,如何让空白区展开,如何设置不同难度的棋盘,如何实现积分表,这些东西都值得大家探索,希望大家可以自行去实现。

游戏运行实测:

           

目录
相关文章
|
23天前
|
缓存 前端开发 程序员
V4-Flash-Vision-Exp 上线,Harness 多模态接入实测
V4-Flash-Vision-Exp 刚上线,用 DeepSeek Harness 实测多模态新模型,含 API 接入、图片理解与价格细账
|
存储 数据可视化 关系型数据库
|
程序员
fixed数据类型
在处理图形运算,特别是3D图形生成运算时,往往要定义一个Fixed数据类型,我称它为定点数,定点数其时就是一个整形数据类型,他的作用就是把所有数 进行转换,从而得到相应类型的整型表达,然后使用定点数进行整行运算,取到最终值并将其转换回实际的基本数据类型。
|
6天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1746 8
|
10天前
|
人工智能 运维 BI
阿里云千问办公QwenWork深度解析:基于Qwen3.8,六大核心能力重构企业全自动化工作流与计费选型指南
传统AI办公工具大多停留在对话问答、文档摘要、简单文案生成层面,只能完成单点碎片化任务,无法自主拆解复杂业务流程,很难串联多工具、多文档、外部业务系统完成端到端完整工作交付。很多企业在落地AI办公的时候,需要组合多款不同工具,来回切换界面,手动复制粘贴中间结果,智能化改造落地门槛居高不下。千问办公QwenWork是整合多款智能体产品能力打造的一体化企业办公智能体平台,底层基座依托Qwen3.8大模型,打通桌面端Agent、云端Agent、企业协同Agent三种运行形态,不再局限简单问答,接收业务目标之后自主拆解任务步骤,调用各类工具,处理文档、表格、浏览器自动化、数据查询,直接输出可交付的办公
1636 2
|
11天前
|
网络协议 Linux iOS开发
【2026实测】Wireshark下载+安装+汉化+使用教程(图文版,巨详细)
Wireshark 是一款免费开源的网络协议分析工具,可实时捕获、解析并可视化数据包,助你诊断网络故障、分析通信协议(如HTTP、DNS、TCP等)。支持Windows/macOS/Linux,含中文界面,新手入门便捷。(239字)
|
7天前
|
SQL 人工智能 前端开发
QoderWake 1.0 正式发布:从桌面里的 Agent,到工作现场的数字员工
QoderWake v1.0正式发布:企业级数字员工团队平台。支持“一句话建岗”,预置10类特训岗位;Waker常驻钉钉/飞书群,@即响应、自动协作、跨任务记忆;具备定时/事件/API多触发方式与统一任务看板;已沉淀27.6万条记忆、12.3万项技能,助力组织实现人机协同增效。
767 2
|
5天前
|
缓存 测试技术 API
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
DeepSeek V4.1 Flash 内测不用申请,base_url 不变、改个模型名就能调,9/10 到期。本文讲清接入、计费限流与多模态注意点。
761 0
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
|
19天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3931 5
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考