清算所有空细胞扫雷艇(游戏)的代码

23日视图(30天)
罗洛
罗洛 2014年2月24日
编辑: C哈特2016年10月12日
我整天一直试图解决这个问题,我认为我要疯了。
我想写一个代码来模拟扫雷艇——我不想比起它,但我想要的基本功能。我知道有一些bug的代码在这里但我最艰难的事情是如何清晰的面积“0”当你点击一个网格空间没有我和我的邻居。(谷歌扫雷艇如果你不知道我指的是什么)。
这就是我想要达到:
  1. 单击一个正方形,它包含没有我和邻近的矿山
  2. 发现这个广场及其周边8广场
  3. 找到这些8广场也没有邻近的矿山
  4. 发现这些方块的8个邻国
  5. 重复步骤3和4,直到所有正方形的周长是发现和“无我”区域显示
到目前为止,我只是横扫向一个方向,直到我达到一个地方煤矿开始出现,但我不知道如何继续重复,直到所有的区域是清除。
我附上了我的代码希望它应该更容易想象我的问题。我想我不能连续思考思考这个问题这么多小时后(我v新MatLab)。
巨大的提前谢谢!

答案(1)

Doug船体
Doug船体 2014年2月24日
我喜欢问自己“可能工作的最简单的事是什么?”This is always going to be fast, so how about this routine after you have clicked on an empty square:
“我改变国旗”= True
“我改变国旗”= = True
“我改变国旗”= FALSE
开始在左上角,扫描从左到右,上下直到你触底右:
如果当前方块是空的,任何相邻的平方是未知的
揭示未知的广场
使“我改变了一些旗帜”真的
结束
结束
结束
这几次你横扫,但它将是最有可能不够快。逻辑很简单,但是效率不高。低效的并不重要,所以简单。
道格
1评论
C哈特
C哈特 2016年10月12日
编辑:C哈特 2016年10月12日
我知道这就像2年后,你能进一步解释“席卷”通过矩阵吗?(从左上角到右下角),可能进一步解释一下你的答案吗?的话我理解你在说什么,但是当试图使用这个代码我不明白你所指的“假”和“真实”和“如果当前广场是空的,和任何相邻的平方是未知的,揭示未知广场”谢谢!:)

登录置评。

类别

找到更多的在视频游戏帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!