//class
public class TicTacToe
{
private String [][] board;
private static final int ROWS=3;
private static final int COLUMNS = 3;
public TicTacToe()
{
board = new String[ROWS][COLUMNS];
//write code to fill in board with space
}
public void set (int i, int j, String player)
{
//sets x or o
if (board[i][j].equals(""))
board[i][j] = player;
}
public String findWinner ()
{
//x
if (((board[1][1] == "X") && (board[1][2] == "X") && (board[1][3] == "X")))
return ("Player1 Wins!");
else if (((board[2][1] == "X") && (board[2][2] == "X") && (board[2][3] == "X")))
return ("Player1 Wins!");
else if (((board[3][1] == "X") && (board[3][2] == "X") && (board[3][3] == "X")))
return ("Player1 Wins!");
//side
else if (((board[1][1] == "X") && (board [1][2] == "X") && (board [1][3] == "X")))
return ("Player1 Wins!");
else if (((board[2][1] == "X") && (board [2][2] == "X") && (board [2][3] == "X")))
return ("Player1 Wins!");
else if (((board[3][1] == "X") && (board [3][2] == "X") && (board [3][3] == "X")))
return ("Player1 Wins!");
//down
else if (((board[1][1] == "X") && (board [2][2] == "X") && (board [3][3] == "X")))
return ("Player1 Wins!");
else if (((board[1][3] == "X") && (board [2][2] == "X") && (board [1][3] == "X")))
return ("Player1 Wins!");
//slant
//o
if (((board[1][1] == "O") && (board[1][2] == "O") && (board[1][3] == "O")))
return ("Player2 Wins!");
else if (((board[2][1] == "O") && (board[2][2] == "O") && (board[2][3] == "O")))
return ("Player2 Wins!");
else if (((board[3][1] == "O") && (board[3][2] == "O") && (board[3][3] == "O")))
return ("Player2 Wins!");
//side
else if (((board[1][1] == "O") && (board [1][2] == "O") && (board [1][3] == "O")))
return ("Player2 Wins!");
else if (((board[2][1] == "O") && (board [2][2] == "O") && (board [2][3] == "O")))
return ("Player2 Wins!");
else if (((board[3][1] == "O") && (board [3][2] == "O") && (board [3][3] == "O")))
return ("Player2 Wins!");
//down
else if (((board[1][1] == "O") && (board [2][2] == "O") && (board [3][3] == "O")))
return ("Player2 Wins!");
else if (((board[1][3] == "O") && (board [2][2] == "O") && (board [1][3] == "O")))
return ("Player2 Wins!");
//slant
//tie
else return ("Tie");
}
public String toString()
{//creates a string representation of the board
String r = "";
for (int i = 0; i<ROWS; i++)
{
r = r+ "|";
for (int j=0; j<COLUMNS; j++)
r = r + board[i][j];
r = r + "|\n";
}
return r;
}
}
//drive
import java.util.*;
public class ticDrive
{
public static void main (String[] args)
{
Scanner scan = new Scanner (System.in);
String nameA, nameB;
TicTacToe a = new TicTacToe();
int row,col;
System.out.print("Enter name of player1:");
nameA=scan.next();
System.out.print("Enter name of player2:");
nameB=scan.next();
System.out.println(nameA+ " = X");
System.out.println(nameB+ " = O\n");
for (int i = 0; i<5; i++)
{
System.out.print ("Player 1 enter the row then column that you would like to place an X ");
row = scan.nextInt();
col = scan.nextInt();
a.set (row, col, "X");
System.out.println (a.toString());
}
for (int i = 0; i<4; i++)
{
System.out.print ("Player 1 enter the row then column that you would like to place an X");
row = scan.nextInt();
col = scan.nextInt();
a.set (row, col, "O");
System.out.println (a.toString());
}
System.out.println ("Final Board\n\n");
System.out.println (a.toString());
System.out.println ("Winner: " + a.findWinner());
}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at TicTacToe.set(TicTacToe.java:21)
at ticDrive.main(ticDrive.java:28)
my code probably doesn't even work, and I don't even know whats wrong with my array that it's getting this error please help
public class ticDrive
{
public static void main (String[] args)
{
Scanner scan = new Scanner (System.in);
String nameA, nameB;
TicTacToe a = new TicTacToe();
int row,col;
System.out.print("Enter name of player1:");
nameA=scan.next();
System.out.print("Enter name of player2:");
nameB=scan.next();
System.out.println(nameA+ " = X");
System.out.println(nameB+ " = O\n");
for (int i = 0; i<5; i++)
{
System.out.print ("Player 1 enter the row then column that you would like to place an X ");
row = scan.nextInt();
col = scan.nextInt();
a.set (row, col, "X");
System.out.println (a.toString());
}
for (int i = 0; i<4; i++)
{
System.out.print ("Player 1 enter the row then column that you would like to place an X");
row = scan.nextInt();
col = scan.nextInt();
a.set (row, col, "O");
System.out.println (a.toString());
}
System.out.println ("Final Board\n\n");
System.out.println (a.toString());
System.out.println ("Winner: " + a.findWinner());
}
}
public class TicTacToe
{
private String [][] board;
private static final int ROWS=3;
private static final int COLUMNS = 3;
public TicTacToe()
{
board = new String[ROWS][COLUMNS];
//write code to fill in board with space
}
public void set (int i, int j, String player)
{
//sets x or o
if (board[i][j].equals(""))
board[i][j] = player;
}
public String findWinner ()
{
//x
if (((board[1][1] == "X") && (board[1][2] == "X") && (board[1][3] == "X")))
return ("Player1 Wins!");
else if (((board[2][1] == "X") && (board[2][2] == "X") && (board[2][3] == "X")))
return ("Player1 Wins!");
else if (((board[3][1] == "X") && (board[3][2] == "X") && (board[3][3] == "X")))
return ("Player1 Wins!");
//side
else if (((board[1][1] == "X") && (board [1][2] == "X") && (board [1][3] == "X")))
return ("Player1 Wins!");
else if (((board[2][1] == "X") && (board [2][2] == "X") && (board [2][3] == "X")))
return ("Player1 Wins!");
else if (((board[3][1] == "X") && (board [3][2] == "X") && (board [3][3] == "X")))
return ("Player1 Wins!");
//down
else if (((board[1][1] == "X") && (board [2][2] == "X") && (board [3][3] == "X")))
return ("Player1 Wins!");
else if (((board[1][3] == "X") && (board [2][2] == "X") && (board [1][3] == "X")))
return ("Player1 Wins!");
//slant
//o
if (((board[1][1] == "O") && (board[1][2] == "O") && (board[1][3] == "O")))
return ("Player2 Wins!");
else if (((board[2][1] == "O") && (board[2][2] == "O") && (board[2][3] == "O")))
return ("Player2 Wins!");
else if (((board[3][1] == "O") && (board[3][2] == "O") && (board[3][3] == "O")))
return ("Player2 Wins!");
//side
else if (((board[1][1] == "O") && (board [1][2] == "O") && (board [1][3] == "O")))
return ("Player2 Wins!");
else if (((board[2][1] == "O") && (board [2][2] == "O") && (board [2][3] == "O")))
return ("Player2 Wins!");
else if (((board[3][1] == "O") && (board [3][2] == "O") && (board [3][3] == "O")))
return ("Player2 Wins!");
//down
else if (((board[1][1] == "O") && (board [2][2] == "O") && (board [3][3] == "O")))
return ("Player2 Wins!");
else if (((board[1][3] == "O") && (board [2][2] == "O") && (board [1][3] == "O")))
return ("Player2 Wins!");
//slant
//tie
else return ("Tie");
}
public String toString()
{//creates a string representation of the board
String r = "";
for (int i = 0; i<ROWS; i++)
{
r = r+ "|";
for (int j=0; j<COLUMNS; j++)
r = r + board[i][j];
r = r + "|\n";
}
return r;
}
}