首页 / Java / C++实现扫雷游戏示例讲解

C++实现扫雷游戏示例讲解

C/C++实现扫雷小游戏 源代码: github:https…

C/C++实现扫雷小游戏

源代码:

github:https://github.com/KamSss/C-Practice/tree/master/Minesweeper扫雷小游戏/Minesweeper扫雷

总体构造:

a.简易的游戏菜单逻辑
b.初始化棋盘
c.布置雷的位置
d.排雷、棋盘打印、判断输赢(难点)

a.简易的游戏菜单逻辑

简单的通过一个输入0和1实现判断是玩游戏还是退出游戏的逻辑
输入1则进入游戏
输入0则break退出游戏,且退出do…while循环,程序结束。

b.初始化棋盘

一、越界情况的考虑

为了减少边界情况可能出现越界访问的情况,把棋盘扩大一圈,但是在显示的时候只显示没扩大之前的棋盘。

C++实现扫雷游戏示例讲解

二、棋盘打印的考虑

如果只使用一个二维数组,同时要记录雷的位置和每一个位置附近的雷数以及点击和未点击的位置显示显然不合适。
所以: 初始化两个棋盘,一个专门用来存放雷的位置,一个专门用于打印当前棋盘给玩家看。

初始化完,得到一个全0的雷盘,和一个全*的显示盘。

c.布置雷的位置

这里用随机数布置雷的位置,会不会对同一个点多次放雷呢?这里的解决办法是,如果当前随机到的位置已经有雷就再随机一个位置防雷。

d.排雷、棋盘打印、判断输赢(难点)d

排雷的逻辑判断:

C++实现扫雷游戏示例讲解

如果没有雷如何打印棋盘呢?
扫雷应该做到,“点击”棋盘之后,一路“打开”到最近的出现雷的边界上。

如何判断输赢:
很简单,踩到雷 board[i][j] == 1
所有的雷都出现了 * == MineCount 就赢了

到此这篇关于C++实现扫雷游戏示例讲解的文章就介绍到这了,更多相关C++实现扫雷游戏内容请搜索我是攻城狮以前的文章或继续浏览下面的相关文章希望大家以后多多支持我是攻城狮!

本文来自网络,不代表我是攻城狮立场,转载请注明出处:https://www.54gcs.cn/programming/java/88954.html

helwo作者

上一篇
下一篇

为您推荐

发表评论

联系我们

联系我们

在线咨询: QQ交谈

邮箱: web@5vo.cn

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部
跳至工具栏