THIS IS WHAT I HAVE SO FAR. MY OUTPUT WON\'T DECLARE A WINNER OR A TIE OR EVEN S
ID: 3660198 • Letter: T
Question
THIS IS WHAT I HAVE SO FAR. MY OUTPUT WON'T DECLARE A WINNER OR A TIE OR EVEN STOP LOOPING. I NEED HELP! import java.util.Scanner; public class TicTacToe { /** * @param args the command line arguments */ public static void move(char [][] board, char plr) { Scanner kb = new Scanner(System.in); int row, col; do { System.out.print("Enter row [1-3]: "); row = kb.nextInt(); System.out.print("Enter column [1-3]: "); col = kb.nextInt(); if(board[row-1][col-1]!='*') System.out.println("Invalid move"); }while (board[row-1][col-1]!='*'); board[row-1][col-1] = plr; } public static void prtbd(char [][] board) { //Prints out board for (int i = 0;i<3;i++) { for (int j = 0; j< 3;j++) { System.out.print(board[i][j]+ " "); } System.out.println(); } } public static boolean win(char [][] board, char plr) { if (board [0] [0] == plr && board [0] [1] == plr && board [0] [2] == plr) { return true; } if (board [1] [0] == plr && board [1] [1] == plr && board [1] [2] == plr) { return true; } if (board [2] [0] == plr && board [2] [1] == plr && board [2] [2] == plr) { return true; } else { return false; } } public static void main(String[] args) { char [][] board = {{'*','*','*'}, {'*','*','*'}, {'*','*','*'}}; while(true) { prtbd(board); move(board, 'X'); if (win(board, 'X')) { System.out.println("You won!"); } else { System.out.println("No winner yet."); } prtbd(board); move(board,'O'); if (win(board, 'O')) { System.out.println("You won!"); } else { System.out.println("No winner yet."); } }Explanation / Answer
please rate - thanks
import java.util.Scanner;
public class TicTacToe
{ /** * @param args the command line arguments */
public static void move(char [][] board, char plr)
{ Scanner kb = new Scanner(System.in);
int row, col;
do { System.out.print("Enter row [1-3]: ");
row = kb.nextInt();
System.out.print("Enter column [1-3]: ");
col = kb.nextInt();
if(board[row-1][col-1]!='*')
System.out.println("Invalid move");
}while (board[row-1][col-1]!='*');
board[row-1][col-1] = plr; }
public static void prtbd(char [][] board)
{ //Prints out board
for (int i = 0;i<3;i++)
{ for (int j = 0; j< 3;j++)
{ System.out.print(board[i][j]+ " ");
} System.out.println();
}
}
public static boolean win(char [][] board, char plr)
{ int i,j;
for(i=0; i<3; i++)
if(board[i][0]==board[i][1]&&board[i][0]==board[i][2]&&board[i][2]==plr)
return true;
for(i=0; i<3; i++)
if(board[0][i]==board[1][i]&&board[0][i]==board[2][i]&&board[2][i]==plr)
return true;
if(board[0][0]==board[1][1]&&board[1][1]==board[2][2]&&board[2][2]==plr)
return true;
if(board[0][2]==board[1][1]&&board[1][1]==board[2][0]&&board[0][2]==plr)
return true;
return false;
}
public static void main(String[] args)
{ char [][] board = {{'*','*','*'}, {'*','*','*'}, {'*','*','*'}};
boolean gameNotOver=true;
while(gameNotOver)
{
prtbd(board);
move(board, 'X');
if (win(board, 'X'))
{ System.out.println("You won!");
gameNotOver=false;
}
else
{ System.out.println("No winner yet.");
}
if(gameNotOver)
{
prtbd(board);
move(board,'O');
if (win(board, 'O'))
{ System.out.println("You won!");
gameNotOver=false;
}
else
{ System.out.println("No winner yet.");
}
}
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.