我有我的代碼片段,我寫了函數來檢查皇后放置的行,列和對角線,以便它們不會互相攻擊。目前,我在與對角線功能問題:在對角檢查nqueen
def checkDiagonal(T):
for i in range(len(T) - 1):
if abs(T[i] - T[i + 1]) == 1:
return False
return True
具有這種功能的問題是,它只會考慮當皇后是一個長度分開,但不是在案件不止一個。
實施例中,如果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是女王的下一個可能的位置,但輸出中有一個X與女王明顯對角,並且會受到攻擊。
偏溶液列表= [6,0],在這種情況下,它將傳遞給函數爲T
輸入參數'T'應該是什麼? – JohanL
@JohanL部分解決方案列表[6,0] – Electric
你怎麼知道你正在測試的是什麼樣的'X'位置?或者你想測試它們嗎?在那種情況下,'N'會很好。 – JohanL