私はこのTic Tac Toeプログラムにわずかな問題があります。私は、Xピース(私はまだOのためにそれをしていない)と垂直と水平の勝利をチェック入れ子カウンターを持っています。何らかの理由で、決して終わらず、私はますます多くの作品を置くことができます。Tic Tac Toeプログラムが勝者を特定していない
いくつかのコンテキストでは、コードの一部を次に示します。
public static void game (String winner, Board pointer)
{
boolean win = false;
int turnCount = 1;
winner = "Tie";
while (win == false || turnCount < 9)
{
int row = Integer.parseInt(JOptionPane.showInputDialog(pointer.getName1() + ", it is your turn. " + "\n" + "What row would you like your 'x' to be in?"));
int col = Integer.parseInt(JOptionPane.showInputDialog("What column would you like it to be in?"));
pointer.play[row] [col] = pointer.x;
SpotCheck1(winner, pointer, row, col);
System.out.println(BoardStat(pointer));
winCheck(win, pointer, winner);
int row2 = Integer.parseInt(JOptionPane.showInputDialog(pointer.getName2() + ", it is your turn. " + "\n" + "What row would you like your 'o' to be in?"));
int col2 = Integer.parseInt(JOptionPane.showInputDialog("What column would you like it to be in?"));
SpotCheck2(winner, pointer, row2, col2);
pointer.play[row2] [col2] = pointer.o;
System.out.println(BoardStat(pointer));
winCheck(win, pointer, winner);
turnCount++;
}
//return winner;
}
public static void winCheck (boolean win, Board pointer, String winner)
{
for (int counter = 1; counter <= 3; counter++)
{
if (pointer.play [counter] [1].compareTo(pointer.x) > 0 && pointer.play [counter] [2].compareTo(pointer.x) > 0 && pointer.play [counter] [3].compareTo(pointer.x) > 0)
{
win = true;
winner = pointer.getName1();
win(winner, pointer);
}
else if (pointer.play [1] [counter].compareTo(pointer.x) > 0 && pointer.play [2] [counter].compareTo(pointer.x) > 0 && pointer.play [3] [counter].compareTo(pointer.x) > 0)
{
win = true;
winner = pointer.getName1();
win(winner, pointer);
}
}
//return win;
}
SpotChecks1と2は、プレーヤーがすでに作品を配置しているかどうかを確認する方法です。 WinCheckメソッドに問題があると私は思う。もし誰かが私を助けることができれば、それは素晴らしいだろう!私が間違ったことをした場合、最初の投稿、謝罪します。
:static''' '' 'から離れると、あなたが維持している状態を移動
そして、あなたがする方法
(whileループの外側)をインスタンスフィールドに追加します。 –winCheck
のいずれかの呼び出しを変更するあなたのgame
方法で