チェス盤上の n-queens の状態のすべての隣接ノードを返す関数を作成しようとしています。以下は私のコードです。主に、パラメータ入力状態に基づいて隣接ノードのリストを生成します。
#Generate neighboring state's function
def generate_neighbor_node (cur_state):
current = cur_state
neighbor = current
neighbor_list = []
for i in range(qs):
chg_value = neighbor[i]
chg_value +=1
if chg_value == qs:
chg_value =0
neighbor[i] = chg_value
print neighbor
neighbor_list.append(neighbor)
#Reverse the process, to change the node value back to original for next
#loop to generate another valid neighbor state
chg_value -=1
if chg_value == -1:
chg_value = (qs-1)
neighbor[i] = chg_value
return neighbor_list
print board
ai = generate_neighbor_node(board)
print ai
The output is like this:
1. [1, 3, 2, 0]
2. [2, 3, 2, 0]
3. [1, 0, 2, 0]
4. [1, 3, 3, 0]
5. [1, 3, 2, 1]
[[1, 3, 2, 0], [1, 3, 2, 0], [1, 3, 2, 0], [1, 3, 2, 0]]
しかし、私が本当に欲しいのは、リストに含まれる配列が 2、3、4、および 5 であり、1 ではないことです。助けてください、ありがとう。