この作品は課題作品です。私は2次元配列で作業していますが、これまでのところ、配列を通過したいパスを見つけました。配列には他のパスがあり、それらも通過できるようにしたいのですが、どのパスも再利用できません。私の配列は次のようになります。
0,2,4,1,6,0,0
2,0,0,0,5,0,0
4,0,0,0,5,5,0
1,0,0,0,1,1,0
6,5,0,1,0,5,5
0,0,5,1,5,0,0
0,0,0,0,5,0,0
近くの隣人を見つけるための私のコードは次のとおりです。
def check_neighbours(Alist, node):
nodes = []
for i in range(0,2):
for j in range(0,2):
x = node[0]+i
y = node[1]+j
if x>=0 and y>=0 and (i!=0 or j!=0) and Alist[x][y]>0:
nodes.append([x, y])
訪問した各座標 x、y を、取得したフル パスを作成するリストに追加しています。出力の例を次に示します。
inside pathing function
path taken is ['[0, 1]', '[0, 2]', '[0, 3]', '[0, 4]', '[1, 4]', '[2, 4]', '[2, 5]', '[3, 5]', '[4, 5]', '[4, 6]']
隣人を検索する方法 (x と y が分離されている) のため、構築された現在の座標が既にリスト内にあるかどうかをテストする方法は考えられません。コードは次の 2 行の間に収まると思います。
if x>=0 and y>=0 and (i!=0 or j!=0) and Alist[x][y]>0:
nodes.append([x, y])