誰かが三目並べで勝ったかどうかをテストする最も効率的なJavaの方法を探しています。データは次のような2次元配列にあります...
char[][] ticTacToe =
{{'X',' ','O'},
{'O','X','O'},
{'X',' ','X'},};
これが配列を初期化する専門的な方法ではないことはわかっていますが、ここでテストしているだけです。
私が今できる最善のことは、徹底的な if/else ツリーです。これがその中の一本の木...
if (ticTacToe[1][1] == 'X'){
if (ticTacToe[0][0] == 'X'){
if (ticTacToe[2][2] == 'X'){
System.out.println("X wins");
}
}
else if (ticTacToe[0][1] == 'X'){
if (ticTacToe[2][1] == 'X'){
System.out.println("X wins");
}
}
else if (ticTacToe[1][0] == 'X'){
if (ticTacToe[1][2] == 'X'){
System.out.println("X wins");
}
}
else if (ticTacToe[2][0] == 'X'){
if (ticTacToe[0][2] == 'X'){
System.out.println("X wins");
}
}
}
これは真ん中にあるものだけを気にします
これは非常に基本的なことであり、コード行を最小限に抑えるために改善したいと考えています。