public boolean checkWin() {
if(states[0][0][0] == 1 && states[0][0][1] == 1 && states[0][0][2] ==1 && states[0][0][3] ==1) { // Checks 0th layer, 0th row
return true;
}
else if (states[0][1][0] == 1 && states[0][1][1] == 1 && states[0][1][2] ==1 && states[0][1][3] ==1) { // Checks 0th layer, 1st row
return true;
}
else if (states[0][2][0] == 1 && states[0][2][1] == 1 && states[0][2][2] ==1 && states[0][2][3] ==1) { // Checks 0th layer, 2nd row
return true;
}
else if (states[0][3][0] == 1 && states[0][3][1] == 1 && states[0][3][2] ==1 && states[0][3][3] ==1) { // Checks 0th layer, 3rd row
return true;
}
}
此代碼被硬編碼以檢查第0層和該層上的4行。我可以硬編碼其餘的,但當然這將是非常耗時和糟糕的代碼。當我試圖使它停止循環後三次點擊檢查四行四行,四行四行的遊戲中的行
public boolean checkWin() {
for (int i=0; i<=3; i++) {
if(states[0][0][i] == 1){ // Checks 0th layer, all rows
return true;
}
}
return false;
}
這是我試圖使循環,但它不工作。
請澄清你的問題到底是什麼? – ProgrammerDan
這應該是一個3D井字遊戲,4單位寬* 4單位高* 4單位深? – mttdbrd
它是一個4x4x4的tic tac腳趾,當點擊令牌狀態變成1(對於玩家1)或2(對於玩家2)時,我需要編寫檢查棋盤的循環以查看玩家是否贏得了遊戲(填滿一行,一列等)。最上面的代碼工作,但它是硬編碼只檢查底層的4行。 – user3457171