0
Tiles = {  
{0,0,0,0,0,0,0,0,0,0},  
{0,2,2,2,2,2,2,2,2,0},  
{0,3,0,0,2,4,2,2,2,0},  
{0,0,2,0,0,0,2,2,2,0},  
{0,0,2,2,2,0,2,2,2,0},  
{0,0,0,0,2,0,2,2,2,0},  
{0,0,2,2,2,0,2,2,2,0},  
{0,0,0,0,0,0,0,0,0,0}  
}

0 不可点击,其他可点击,否则 0 可步行,其他不可,我点击 Tiles[3][2](数字 3)然后点击 Tiles[3][6](数字 4),我想连接那个2 瓦通过可步行瓦,问题是我不需要最短的解决方案,而是我需要具有 2 个或更少拐角(转弯)的解决方案,我花了 3 天时间来想象和谷歌搜索算法,但没有运气,有人可以给我关于那个的线索或文章,我使用 lua,但我仍然欣赏其他语言。

4

1 回答 1

1

使用以下规则将您的网格转换为图表:

  • 网格中的每个可行走图块对应于图中的一个节点。
  • 如果两个节点位于网格中的同一行或列中并且网格中它们之间的每个图块都是可行走的,则它们在图中连接(权重为 1)。

图中的最短路径对应于网格中拐角最少的路径。

于 2012-06-25T21:15:14.687 回答