我正在編寫一個tic tac腳趾遊戲,我不確定是否有更快更簡單的方法來檢查贏家。如何簡化井字棋贏家檢查
if (boardArray[0][0] == boardArray[0][1] && boardArray[0][0] == boardArray[0][2]) {
System.out.println("The wimmer is: " + boardArray[0][0]);
} else if (boardArray[1][0] == boardArray[1][1] && boardArray[1][0] == boardArray[1][2]) {
System.out.println("The wimmer is: " + boardArray[1][0]);
} else if (boardArray[2][0] == boardArray[2][1] && boardArray[2][0] == boardArray[2][2]) {
System.out.println("The wimmer is: " + boardArray[2][0]);
} else if (boardArray[0][0] == boardArray[1][0] && boardArray[0][0] == boardArray[2][0]) {
System.out.println("The wimmer is: " + boardArray[0][0]);
}else if (boardArray[0][1] == boardArray[1][1] && boardArray[0][1] == boardArray[2][1]) {
System.out.println("The wimmer is: " + boardArray[0][1]);
} else if (boardArray[0][2] == boardArray[1][2] && boardArray[0][2] == boardArray[2][2]) {
System.out.println("The wimmer is: " + boardArray[0][2]);
} else if (boardArray[0][0] == boardArray[1][1] && boardArray[0][0] == boardArray[2][2]) {
System.out.println("The wimmer is: " + boardArray[0][0]);
} else if (boardArray[0][2] == boardArray[1][1] && boardArray[0][2] == boardArray[2][0]) {
System.out.println("The wimmer is: " + boardArray[1][1]);
} else {
System.out.println("ITS A DRAW");
}
我知道,我可以通過不同的指標使用for循環來循環但這只是減少了代碼由大約2/3的線,所以不會產生巨大的變化
「減2/3」是很多,我們應該值得嗎?你應該使用循環的主要好處和原因是DRY:不要重複你自己。你實際上舉了一個很好的例子:你有一個錯字:「這個錯誤是:」。現在你必須改變8行而不是隻有一行。簡化代碼會使事情變得更容易,無論是糾正錯誤還是改變行爲。 – Sentry
^應該是被接受的答案。 – onnoweb
@Sentry你是對的,我改變了我的代碼 – KONADO