我在C#中進行連接4控制檯遊戲。除了hasGameBeenWon()
函數之外,我已經安裝了所有應用程序並正常工作。該函數在Main do ... while循環中調用,並在遊戲未贏時返回false。最簡單也可能是最有效的方法來檢查數組中的數據
static bool gameHasEnded(int currentTurn)
{
int currentTurnPiece;
if (currentTurn.Equals(1))
{
currentTurnPiece = BLUE;
}
else if (currentTurn.Equals(2))
{
currentTurnPiece = RED;
}
return false;
}
(顯然,這個代碼是不完整的)
...是怎麼了目前看起來,當前玩家的回合currentTurn
變種是int值(它可以是1或2)。 BLUE和RED是常數,它們被分配值1和2,當應用程序打印到控制檯時,這些值在板上被轉換成藍色和紅色。
現在我被困在如何檢查遊戲是否被有效贏得和儘可能簡單。該板被存儲在一個名爲board
的數組中,我需要檢查是否有一組4個相同的值向上/向下,向左/向右以及所有方向都是對角線。檢查上/下和左/右並不難,但對角線我想也許有點慢,不得不檢查每一次。
無論如何,我可以加快檢查整個董事會,或者可能跳過檢查整個董事會,可能只是搜索相關領域?
如果您打算髮布代碼,它可能會幫助您發佈與您的問題有關的所有相關代碼。根據代碼的這一部分,很難確定您正在做什麼..顯示如何定義「board」以及 – MethodMan 2013-04-21 18:03:46
1)請使用命名常量/對象而不是整數文字。 2)不要在主'do ... while'循環中進行檢查。相反,在每次移動後執行check _once_。 3)我不認爲效率應該是這樣一個簡單的檢查/遊戲的主要關注。讓它首先使用可讀/可維護的代碼工作,然後決定是否需要優化。 – 2013-04-21 18:04:11
添加電路板陣列。這應該很簡單 – nmat 2013-04-21 18:04:25