1
我有一個單元格矩陣(在我的情況下是按鈕),如果我點擊一個按鈕,我需要檢查附近(加形狀)單元格是否爲空,如果單元格是空的(只有一個可以),我需要交換兩個單元格(空單元格和單擊單元格)。 我現在要做的是:整潔地檢查附近的單元格是否爲空
if(j < 3)
if (!fbarr[i, j + 1].Visible)
swap(fbarr[i, j], fbarr[i, j + 1]);
if(j > 0)
if (!fbarr[i, j - 1].Visible)
swap(fbarr[i, j], fbarr[i, j - 1]);
if(i < 3)
if (!fbarr[i + 1, j].Visible)
swap(fbarr[i, j], fbarr[i + 1, j]);
if(i > 0)
if (!fbarr[i - 1, j].Visible)
swap(fbarr[i, j], fbarr[i - 1, j]);
現在我個人認爲這是醜陋的地獄。
有沒有更好的方法來做到這一點? (這是C#,如果它的事項)
感謝
您確實只有一個if,但您還需要分別創建每個偏移量。所以這不是理想的......但仍然比我的想法更好。 – shoham
@shoham:沒錯,但單獨列出偏移量的好處是它非常明確,可以說更易於閱讀。另外,如果您想要在搜索中添加對角線,這將非常容易。我相信有更多的「巧妙」方法來迭代這些偏移量,但我認爲在這種情況下並不需要這麼做(請記住,聰明性通常與可維護性不一致 - 好的代碼很簡單)。 – voithos
好吧,我想你是對的。謝謝。 – shoham