Algorithm 扫雷艇空位搜索算法

Algorithm 扫雷艇空位搜索算法,algorithm,Algorithm,我正在创建一个扫雷艇,只是想知道当用户按下空单元格,然后增长并限制到边界,直到它到达炸弹单元格时,搜索所有空单元格的最佳算法是什么。我计划使用递归搜索,但可能会减慢搜索过程 谢谢。如果您以图形方式描述检测,我认为最好分多个步骤进行(按照您的建议增加边界): 显示单击的方块,查找附近所有明显已处理的条目 展示那些方块,找到所有靠近那些明显被处理的条目 重复步骤2 这样用户可以看到它的发生,这总是好的。混入一些动画,它可能是一些很酷的东西,让人希望它发生。如果你以图形方式描述检测,我认为最好分多个步

我正在创建一个扫雷艇,只是想知道当用户按下空单元格,然后增长并限制到边界,直到它到达炸弹单元格时,搜索所有空单元格的最佳算法是什么。我计划使用递归搜索,但可能会减慢搜索过程


谢谢。

如果您以图形方式描述检测,我认为最好分多个步骤进行(按照您的建议增加边界):

  • 显示单击的方块,查找附近所有明显已处理的条目
  • 展示那些方块,找到所有靠近那些明显被处理的条目
  • 重复步骤2

  • 这样用户可以看到它的发生,这总是好的。混入一些动画,它可能是一些很酷的东西,让人希望它发生。

    如果你以图形方式描述检测,我认为最好分多个步骤进行(按照你的建议增加边界):

  • 显示单击的方块,查找附近所有明显已处理的条目
  • 展示那些方块,找到所有靠近那些明显被处理的条目
  • 重复步骤2
  • 这样用户可以看到它的发生,这总是好的。混合一些动画,它可能是一些很酷的东西,使人们希望它发生。

    的解决方案是实现它的一个好方法

    您可以使用队列完成此操作

    例如:

    push the first empty cell/point
    LOOP until queue non empty 
       pop.head cell and reveal it
       push the empty surrounding cells of it (8 at maximum)
         (you must flag the cells so you don't push them again,  
          ie dont push the cells that are already revealed)
    
    的解决方案是实现它的好方法

    您可以使用队列完成此操作

    例如:

    push the first empty cell/point
    LOOP until queue non empty 
       pop.head cell and reveal it
       push the empty surrounding cells of it (8 at maximum)
         (you must flag the cells so you don't push them again,  
          ie dont push the cells that are already revealed)
    

    从算法的角度来看,你不能错误地使用或。基本上描述了广度优先搜索,但一般来说,您想要的解决方案是“当您仍在查看广场时,显示广场;如果广场没有炸弹邻居,则对于尚未访问的八个邻居中的每一个,将其标记为已访问,并将其添加到您正在查看的广场列表中”。重复这个步骤,直到你看到的方块列表为空,然后从用户单击的方块开始。

    从算法角度看,你不能错误地使用或。基本上描述了广度优先搜索,但一般来说,您想要的解决方案是“当您仍在查看广场时,显示广场;如果广场没有炸弹邻居,则对于尚未访问的八个邻居中的每一个,将其标记为已访问,并将其添加到您正在查看的广场列表中”。重复此操作,直到您正在查看的方块列表为空,然后从用户单击的方块开始。

    数据量太小,以至于无关紧要。数据量太小,以至于无关紧要。