找到最少的转弯路径

时间:2012-06-25 21:10:37

标签: path-finding

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但其他语言仍然是我欣赏。

1 个答案:

答案 0 :(得分:1)

使用以下规则将网格转换为图形:

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

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