假设我有一个像这样的数组(a [19] [19]):
[[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 0 1 1 1 -1 -1 2 2 2 2 2 -1 1 1 -1 -1 1 1 0]
[ 0 1 1 -1 -1 -1 2 2 2 2 2 -1 1 1 -1 1 1 1 0]
[ 0 2 2 -1 -1 2 2 2 2 2 2 -1 1 1 -1 1 1 1 0]
[ 0 2 2 -1 2 2 2 2 2 2 2 -1 -1 -1 -1 1 1 1 0]
[ 0 2 2 2 2 2 2 2 2 2 2 2 2 -1 -1 1 1 1 0]
[ 0 2 2 2 2 2 2 2 2 2 2 2 2 2 -1 1 1 1 0]
[ 0 2 2 2 2 2 2 2 2 2 2 2 2 -1 -1 -1 -1 -1 0]
[ 0 2 2 2 2 2 2 2 2 2 2 2 2 -1 -1 -1 -1 -1 0]
[ 0 2 2 -1 2 2 2 2 2 3 2 2 2 2 -1 2 -1 1 0]
[ 0 2 2 -1 -1 -1 -1 2 2 2 2 2 2 2 -1 2 -1 2 0]
[ 0 2 2 -1 -1 1 -1 2 2 2 2 2 2 2 2 2 2 2 0]
[ 0 2 2 -1 -1 1 -1 2 2 2 2 2 2 2 -1 2 -1 2 0]
[ 0 2 2 -1 1 1 -1 2 2 2 2 2 2 2 -1 2 -1 2 0]
[ 0 2 2 -1 1 1 -1 2 2 2 2 2 2 2 -1 -1 -1 -1 0]
[ 0 2 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0]
[ 0 2 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 0]
[ 0 2 2 -1 1 1 1 1 1 -1 1 1 1 1 -1 -1 -1 1 0]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]
例如,我得到点[17] [1],然后检查该点是否=2。如果可以,我可以继续下一步。我必须找到到达给定点的最短路径,并且应该像在蛇游戏中一样移动,这样当我碰到一个角时就不能从一个点跳到另一个点。
从a [9] [9]到a [17] [1]的示例路径
path=[[9,9],[9,8],[9,7],[9,6],[9,5],[9,4],[8,4],[8,3],[8,2],[9,2],[10,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[17,1]]
最困难的事情是将启动点封闭在正方形中,并且仅在北(门)出口,而我的目的地在该正方形(房间)之外的南方某处。
我在问是否已经有一些技巧/方法可以帮助我解决这个问题?当您必须与目的地相反的方向以先离开一些空间或选择正确的路径而不要像这样进入房间时,它会变得越来越困难。