2009-12-01 51 views
0

我正在尝试制作Vista扫雷艇克隆。现在我的发现算法是级联算法。它看起来像一个正方形变得越来越大。我注意到,在视频扫描器中,当它的游戏过程中,它通过循环遍历游戏来揭开地雷。有谁知道这个算法被称为什么?谢谢Vista扫雷艇Gameover揭秘算法

回答

0

我能找到的算法描述的最接近的官方名称是"Rectangular Spiral Search",它是一种输出路径的算法,以螺旋方式完全扫描网格。

一个简单算法尺寸的正方形网格的顺时针扫描(2N + 1)^ 2,N> 0应该是这样的:

(假设网格的坐标(0,0)到是在网格的左下角)

  1. 开始在电网(N的中心单元,N)
  2. 向左移动(-1,0)为下一个信元
  3. 设置运动方向向上(0,+ 1)
  4. While当前单元格(X,Y)不是角落(即, (XN)^ 2 ==(YN)^ 2),移动在设置方向
  5. 如果当前小区不是(0,0)
  6. 方向顺时针转动
    • (0,+ 1)变为(+1,0)
    • (+1,0) - >(0,-1)
    • (0,-1) - >( - 1, 0)
    • (-1,0) - >(0,+ 1))
  7. 向新移动方向一次
  8. 转到步骤4
  • 如果当前单元是(0,0),则完成
  • 对于(2N)^ 2的尺寸和非正方形网格,则必须调整前3个步骤。

    Array-Tour模块的Spiral对象中的Perl可用于方形网格的实现。