I have this slight problem with my Tic Tac Toe program. I have a nested counter checking for vertical and horizontal wins with the X piece (I haven't done it for O yet). For some reason, it never ends, allowing me to place more and more pieces.
For some context, here are some snippets of code.
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;
}
SpotChecks 1 and 2 are the ways to check if a player has already placed a piece. The problem, I think, is in the WinCheck method. If anybody can help me out, that'd be great! First post, apologies if I did something wrong.