1
該代碼的目的是在每個水平行中查找重複數字1-9。當然,當我開始工作時,我會做到這一點,所以它會在垂直行上工作。在2D中查找重複項在運行時無法正常工作,但在調試時
所以這是我的代碼,我認爲它應該是一個工作代碼,以在所有水平行中的二維數組中找到重複。
我有一個非常奇怪的問題,我的Sudoku解決代碼,它似乎工作時,我調試,但是當我運行它總是說,它發現重複。這是我錯過的東西,還是代碼中的邏輯完全錯誤,不應該是這樣,6個小時後我完全失去了。
下面是代碼:
public bool UniqRowX(Square rutor)
{
int duplicate = 0;
for (int row = 0; row < 9; row++)
{
for (int find_duplicate_nummber = 1; find_duplicate_nummber < 10; find_duplicate_nummber++)
{
for (int col = 0; col < 9; col++)
{
if(rutor.SudokuArray[row, col].nummer==find_duplicate_nummber)
{
duplicate = duplicate + 1;
}
if(duplicate>1)
{
MessageBox.Show("Duplicate!");
return false;
break;
}
}
}
}
MessageBox.Show("No Duplicate");
return true;
}
爲什麼有Thread.Sleep(100)?你有涉及多線程? –
您應該創建一個適當的數據模型,其中'Square'類表示數獨板中的單個單元格,而不是整個板,並且還包含'Row'和'Column'數字屬性,您可以使用LINQ來查詢它們從500年前那個可怕的'for'循環。 –
@ThomasW。我刪除它,與代碼無關 –