私は自分のコードの断片を持っています。私は、クイーンの配置の行、列、対角線をチェックしてお互いを攻撃しないようにする関数を書いています。現在、私は、斜めの機能の問題を抱えている:nqueenで斜めに確認する
def checkDiagonal(T):
for i in range(len(T) - 1):
if abs(T[i] - T[i + 1]) == 1:
return False
return True
この機能の問題は、女王は長さ離れてではなく、1以上の場合より一つであるとき、それが唯一検討するということです。
例、N = 7が出力した場合:
Enter the value of N: 7
0 Q 0 0 0 0 0
0 0 0 0 0 0 0
0 0 X 0 0 0 0
0 0 X 0 0 0 0
0 0 X 0 0 0 0
0 0 X 0 0 0 0
Q 0 0 0 0 0 0
出力Q iがコードに設定された部分の溶液です。 Xはクイーンの次の可能な位置ですが、出力にはクイーンとはっきりと対角線上に1つのXがあり、攻撃されます。場合にのみ場合>右上対角線 - T
入力パラメータ「T」とは何ですか? – JohanL
@JohanL部分解リスト[6,0] – Electric
あなたはどのような 'X 'ポジションをテストしているのですか?または、それらをすべてテストしたいですか?その場合、「N」は持っていると良いでしょう。 – JohanL