栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

我的扫雷笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我的扫雷笔记

目录

前言

         扫雷的内容

game.h头文件

test源文件

game.c源文件

视频


前言

        相信很多人都玩过扫雷,那么今天我自己做一个扫雷玩一玩。

        那么接下来就跟着我一步一步的实现它吧!

        首先要创建两个源文件,一个头文件。

 

        创建了之后呢,我们就要对扫雷的内容进行实现啦。

扫雷的内容

game.h头文件

        这个文件里放的就是一些函数的声明,库函数的引用,还有棋盘的定义和雷的数量。

test源文件

        下面的图片就是“test”文件里主要的内容啦。

        有菜单,游戏的内容和运行的主体逻辑。当然还是要引用头文件之后,库函数和自定义的函数才可以正常使用。


        这里是一些个选择和循环,加了一个清屏的一个语句“system("cls");”,是为了让屏幕变得干净一些,不显得那么杂乱。


        这个游戏的大致逻辑就是:先打印菜单让玩家选择(1或0)是否开始游戏,选择了0就退出游戏,选择不是(1或0)就认为玩家点错了,对玩家进行一个提示,用“do while”循环至少保证玩家可以进行一次选择。游戏开始这玩家就开始扫雷,直至把不是雷的区域全部点开游戏胜利,被雷炸死游戏结束。

        下面这张图是我对游戏内容的一些逻辑:

        首先创建两个字符数组,mine数组存放雷的信息,show数组存放排查雷的信息。而后对两个数组进行初始化,mine数组全部初始化为字符‘0’,show数组全部初始化为‘*’。

        这个时候如果不放心,我们可以先把扫雷的棋盘打印出来,看一看有没有问题,再进行下一步。

        下一步是把雷存放到mine数组中,在show数组中排查雷,如果排查的坐标在mine数组中不是雷,就看看周围的九宫格里有几个雷就在show数组中显示几(这里显示的是字符数字),如果是雷那么玩家就被炸死游戏结束。

 


game.c源文件

        在这里就是扫雷游戏内容的细节啦。

        首先是初始化扫雷的棋盘,这里传过来的内容我们依次接收,把mine数组和show数组分别初始化为‘0’和‘*’;右图为分别为mine数组和show数组初始化过后的样子。


         上图已经显示过棋盘的样子了,这里主要是棋盘的打印和一些棋盘的优化。


        这里是将雷存放到mine数组里,这里是定义了一个雷的数量(EASY_COUNT),用rand函数随机生成了0~8的数字+1变成1~9。存放10个雷,如果随机到的坐标是字符‘0’那么就把这个坐标改为字符‘1’,存放成功雷的数量-1,直至10个雷存放完毕。


         这里玩家输入坐标后,先判断输入的坐标是不是0~9里的数字,不是就进行提示,是就先看那个坐标有没有被排查过,排查过了就进行提示,没有排查过就判断坐标里的是否为字符‘0’,(因为我们的mine数组里不是‘0’就是雷‘1’),不是字符‘0’那就是雷,提示玩家被炸死了游戏结束。

        如果是字符‘0’那么就判断坐标周围九宫格里有几个雷,上图就是判断周围八个坐标有几个雷的函数。(因为数组里存放的是字符,所以把周围八个坐标加起来减去8乘字符‘0’,得到的就是周围有几个雷的数字)  将它返回给count,再把count加字符‘0’得到的就是字符数字,而后再把show棋盘打印给玩家看,玩家再进行下一步排雷。

        这里while循环的判断条件就是游戏胜利的判断条件,因为9X9的棋盘里只有81个格子,减去雷的数量就是玩家要排查的一个范围,玩家成功排查一个非雷位置,win++,在最后判断一下win如果等于81个格子减去雷的数量,那么就证明玩家把非雷的位置都排查出来了,判定玩家游戏胜利。


视频

下面是扫雷游戏的简要视频。

19-32-48

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/892686.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号