我打開了幾年前寫過的一個簡單的MineSweeper程序,如果你可以優化下面的代碼,那麼它就會受到干擾,因爲它看起來並不好看。如何在給定索引周圍的bool [,]中計算真實值?
以下方法是用於檢查所述索引不超出範圍並返回請求的索引的值:
private static bool IsMineOnCoords(bool[,] field, int posI, int posJ)
{
if (posI < 0 || posI > field.GetLength(0) - 1 || posJ < 0 || posJ > field.GetLength(1) - 1) return false;
return field[posI, posJ];
}
我把這種方法用於在8圍繞一個給定索引的每個位置如果陳述:
int count = 0;
if (IsMineOnCoords(field, posI + 1, posJ)) count++;
if (IsMineOnCoords(field, posI - 1, posJ)) count++;
if (IsMineOnCoords(field, posI + 1, posJ + 1)) count++;
if (IsMineOnCoords(field, posI + 1, posJ - 1)) count++;
if (IsMineOnCoords(field, posI - 1, posJ + 1)) count++;
if (IsMineOnCoords(field, posI - 1, posJ - 1)) count++;
if (IsMineOnCoords(field, posI, posJ + 1)) count++;
if (IsMineOnCoords(field, posI, posJ - 1)) count++;
有沒有更好的辦法,我可以做到這一點?
增加了一個 「bombScarcity」 變量調整(炸彈的數量因此難度級別)。在我看來,投擲太多的炸彈會造成太多的炸彈,而用戶沒有得到點擊單元格的巨大感覺,並且看到整個空白單元格的空間打開。 :) –