宿題なので、答えだけは言いたくないです。また、何に苦しんでいるのかが明確ではなかったので、これがあなたが抱えていた問題に当てはまることを願っています. 回答を編集してより明確にするか、コメントを残して、回答したすべての人があなたのニーズに合わせてより効果的に回答を改善できるようにします。
2 次元配列を使用してボードを格納できます。Java では、3x3 の 2 次元配列を作成するための構文 (たとえば、型を使用してorchar
を格納する) は次のとおりです。X
O
char[][] board = new char[3][3];
Tic-Tac-Toe では、プレイヤーがゲームに勝ったことを示す 8 つのボードの状態があります (X
以下のマークが付いた動き):
(1) (2) (3) (4) (5) (6) (7) (8)
X X X # # # # # # X # # # X # # # X X # # # # X
# # # X X X # # # X # # # X # # # X # X # # X #
# # # # # # X X X X # # # X # # # X # # X X # #
配列のインデックスは 0 から始まります (3x3 の 2D 配列があるため、最大 2 になります) ことを思い出すと、これは次の一連の条件に変換されます。
(1): board[0][0] == board[0][1] && board[0][1] == board[0][2]
(2): board[1][0] == board[1][1] && board[1][1] == board[1][2]
(3): board[2][0] == board[2][1] && board[2][1] == board[2][2]
(4): board[0][0] == board[1][0] && board[1][0] == board[2][0]
(5): board[0][1] == board[1][1] && board[1][1] == board[2][1]
(6): board[0][2] == board[1][2] && board[1][2] == board[2][2]
(7): board[0][0] == board[1][1] && board[1][1] == board[2][2]
(8): board[0][2] == board[1][1] && board[1][1] == board[2][0]
これらのセルのいずれかが等しい (そして空白でない) 場合、誰か (それらのセルを占有する人に応じてX
またはのいずれか) がゲームに勝ったことになります。O
ループを使用して、このコードをよりコンパクトにすることができます。