我正在设计一个扫雷游戏,但是我找不到如何让“开局”时板块打开的算法。如果你玩过扫雷游戏,第一次点击或者几次点击会显示很多方块。这背后的算法是什么呢?
我正在设计一个扫雷游戏,但是我找不到如何让“开局”时板块打开的算法。如果你玩过扫雷游戏,第一次点击或者几次点击会显示很多方块。这背后的算法是什么呢?
floodFill(cell)
if not cell.isOpen
cell.open()
if not cell.hasNeighbouringBombs
for each neighbour n of cell
floodFill(n)
请注意,这与“正常”的泛洪算法不同:
floodFill(cell)
if not cell.hasNeighbouringBombs and not cell.isOpen
cell.open()
for each neighbour n of cell
floodFill(n)
1 1 2
2 0 3
1 2 3
0
,但是我们希望填充以上所有单元格,因此我们应该在打开当前单元格后再检查hasNeighbouringBombs
。!open
是什么意思。你能否详细说明一下在你的伪代码中open
的不同用法? - LazySloth13cell.open
和cell.isOpen
更有意义。已经修改了。 - Bernhard Barker
show(x, y)
函数。在函数内部,它会展示该方块,同时如果该方块为空,则调用show(x-1, y)
、show(x+1, y)
、show(x, y-1)
和show(x, y+1)
等函数(或许还有对角线函数,我现在记不清了)。 - j_random_hacker