我的數獨求解方法有問題。該程序是這樣工作的;開始時該板是空的,用戶在板上添加了一些數字,然後點擊Solve按鈕,程序試圖解決它。除了如果我把相同的數字放在同一行,一切都可以正常工作。因此,如果用戶添加1,1,0,0 ... 0.在這個難題中,它不能解決它,因爲它的兩個1彼此相鄰,並且將永遠持續下去,試圖找到一個令人振奮的東西,即使它不可解難題。但是,如果它們都是0(空),它會立即解決它,就像Id將1和2放在左上角一樣。如果我只是把一些隨機數字,它會發現它作爲無法解決(或將解決它,如果它是一個有效的謎題)數獨求解方法
我在想說,當theNumber == (row, col) equals thenNumber == (row+1, col)
,它應該return false
,因爲它是一個重複號碼。
這是我試圖在解決方法中添加的代碼,顯然沒有成功。
if ((puzzle.getNum(row, col) == a) == (puzzle.getNum(row + 1, col) == a)) {
return false;
}
幫助感激
您嘗試在嘗試「解決」之前嘗試添加某種驗證嗎?如果你馬上知道這個難題是無法解決的(連續兩個1),那麼你不想試圖解決無限循環。 – Walls 2013-03-21 16:18:23
@牆是的我試着做某種驗證方法,但我無法讓它工作。這是我「驗證」的新嘗試。這就是我需要幫助的。 – Rob 2013-03-21 16:19:34
從a,i,j改變變量名將使這個更具可讀性。或者有些意見將不勝感激。我嘗試使用有意義的變量名稱,並使故障排除變得更簡單。 – 2013-03-21 16:21:15