JAVA TIC TAC TOE - please help me correct my code
Write a program that will allow two players to play a game of TIC TAC TOE.
| 1 | 2 | 3
| 4 | 5 | 6
| 7 | 8 | 9
Player will enter values 1-9.
For Example
When the game starts, if player 1 selects 2. The program will redraw the board with position 2 marked as X.
| 1 | X | 3
| 4 | 5 | 6
| 7 | 8 | 9
Player 2 enters 6, the boards is redrawn as below
| 1 | X | 3
| 4 | 5 | O
| 7 | 8 | 9
If the game is won, display the game winner, and ask the user if they want to play again. If yes, restart the game. If not quit the game.
You must create a class object called board with methods and attributes when implementing this game. All methods should be defined within the class object.
Error message I am getting after first input
Exception in thread "main" java.lang.NullPointerException
at
JavaProgramICards/ticTacToe.Board.checkSpace(Board.java:42)
at
JavaProgramICards/ticTacToe.Main.main(Main.java:27)
package ticTacToe;
public class Board {
private static char[][] board;
public void initBoard(char[][] board) {
System.out.println("New Tic Tac Toe
Board \n Good Luck!");
int a = 1;
for (int i = 0; i < 3;
i++)
for (int j = 0;
j < 3; j++) {
board[i][j] = (char) (a + '0');
a++;
}
}
public void printBoard(char[][] board) {
for (int i = 0; i < 3; i++)
{
for (int j = 0;
j < 3; j++) {
System.out.print(" | " + board[i][j]);
}
System.out.print(" |\n");
}
}
public boolean checkSpace(int space) {
if (space > 0 &&
space <= 9) {
int i = (space -
1) / 3;
int j = (space -
1) % 3;
if
(board[i][j] == 'X' || board[i][j] == 'O')
return false;
else
return true;
}
return false;
}
public void place(int space, char input) {
int i = (space - 1) / 3;
int j = (space - 1) % 3;
board[i][j] = input;
}
public boolean isWinner() {
for (int i = 0; i < 3; i++)
{
if (board[i][0]
== board[i][1] && board[i][1] == board[i][2])
return true;
}
for (int j = 0; j < 3; j++)
{
if (board[0][j]
== board[1][j] && board[1][j] == board[2][j])
return true;
}
if ((board[0][0] == board[1][1]
&& board[1][1] == board[2][2])
|| (board[2][0] == board[1][1] &&
board[1][1] == board[0][2]))
return true;
else
return
false;
}
}
package ticTacToe;
import java.util.Scanner;
import ticTacToe.Board;
class Main {
public static void main(String[] args) {
char[][] board2 = new
char[3][3];
Board board = new Board();
Scanner scan = new
Scanner(System.in);
board.initBoard(board2);
board.printBoard(board2);
int turns = 0;
while (true) {
while (true)
{
System.out.print("Player 1: Enter your move
(choose an available number 1-9) ");
int space = scan.nextInt();
if (board.checkSpace(space)) {
board.place(space,
'X');
board.printBoard(board2);
turns += 1;
break;
} else {
System.out.println("There
already is an X or O marker already there");
}
}
if
(board.isWinner()) {
System.out.println("Woo, Player 1 Wins!");
break;
}
if (turns == 9)
{
System.out.println("Awh it's a draw!");
break;
}
while (true)
{
System.out.print("Player 2: Enter your move
(choose an available number 1-9) ");
int space = scan.nextInt();
if (board.checkSpace(space)) {
board.place(space,
'O');
board.printBoard(board2);
turns += 1;
break;
} else {
System.out.println("There
already is an X or O marker already there");
}
}
if
(board.isWinner()) {
System.out.println("Alright, alright alright!
Player 2 wins!");
break;
}
}
}
}
thanks for the question, I have fixed the null pointer error but still the program was not working as expected, I have fine tuned the classes and its working as expected, please find the updated two classes.
thank you !
===============================================================================
package ticTacToe;
public class Board {
private char[][]
board;
public Board() {
char[][] temp = {{'1',
'2', '3'}, {'4',
'5', '6'}, {'7',
'8', '9'}};
board =
temp;
}
public void
initBoard(char[][] board) {
System.out.println("New Tic Tac
Toe Board \n Good
Luck!");
int a =
1;
for
(int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
{
board[i][j] = (char) (a +
'0');
a++;
}
}
public void printBoard()
{
for
(int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++)
{
System.out.print(" | " +
board[i][j]);
}
System.out.println();
}
}
public boolean
checkSpace(int space) {
if
(space > 0 && space <= 9) {
int i = (space - 1) / 3;
int j = (space - 1) % 3;
if (board[i][j] ==
'X' || board[i][j] ==
'O')
return false;
else
return true;
}
return
false;
}
public void
place(int space, char input)
{
int i =
(space - 1) / 3;
int j =
(space - 1) % 3;
board[i][j] = input;
}
public boolean isWinner()
{
for
(int i = 0; i < 3; i++) {
if (board[i][0] ==
board[i][1] &&
board[i][1] == board[i][2]
&& (board[i][0] == 'X' ||
board[i][0] == 'O')) {
return true;
}
}
for
(int j = 0; j < 3; j++) {
if (board[0][j] ==
board[1][j] &&
board[1][j] == board[2][j]
&& (board[0][j] == 'X' ||
board[0][j] == 'O')) {
return true;
}
}
if
((board[0][0] == board[1][1]
&& board[1][1] ==
board[2][2] &&
(board[0][0] == 'X' ||
board[0][0] == 'O'))
|| (board[2][0] == board[1][1]
&& board[1][1] ==
board[0][2] &&
(board[2][0] == 'X' ||
board[2][0] == 'O'))) {
return true;
} else
return false;
}
}
===============================================================================
package ticTacToe; import java.util.Scanner; class Main { public static void main(String[] args) { Board board = new Board(); Scanner scan = new Scanner(System.in); board.printBoard(); int turns = 0; while (true) { while (true) { System.out.print("Player 1: Enter your move (choose an available number 1-9) "); int space = scan.nextInt(); if (board.checkSpace(space)) { board.place(space, 'X'); board.printBoard(); turns += 1; break; } else { System.out.println("There already is an X or O marker already there"); } } if (board.isWinner()) { System.out.println("Woo, Player 1 Wins!"); break; } if (turns == 9) { System.out.println("Awh it's a draw!"); break; } while (true) { System.out.print("Player 2: Enter your move (choose an available number 1-9) "); int space = scan.nextInt(); if (board.checkSpace(space)) { board.place(space, 'O'); board.printBoard(); turns += 1; break; } else { System.out.println("There already is an X or O marker already there"); } } if (board.isWinner()) { System.out.println("Alright, alright alright! Player 2 wins!"); break; } } } }
===============================================================================
thanks a lot !
JAVA TIC TAC TOE - please help me correct my code Write a program that will...
Can somebody help me with this coding the program allow 2 players play tic Tac Toe. however, mine does not take a turn. after player 1 input the tow and column the program eliminated. I want this program run until find a winner. also can somebody add function 1 player vs computer mode as well? Thanks! >>>>>>>>>>>>>Main program >>>>>>>>>>>>>>>>>>>>>>> #include "myheader.h" int main() { const int NUM_ROWS = 3; const int NUM_COLS = 3; // Variables bool again; bool won;...
In a game of Tic Tac Toe, two players take turns making an available cell in a 3 x 3 grid with their respective tokens (either X or O). When one player has placed three tokens in a horizontal, vertical, or diagonal row on the grid, the game is over and that player has won. A stalemate occurs when all the cells on the grid have been filled with tokens and neither player has achieved a win. Write a program...
In a game of Tic Tac Toe, two players take turns making an available cell in a 3 x 3 grid with their respective tokens (either X or O). When one player has placed three tokens in a horizontal, vertical, or diagonal row on the grid, the game is over and that player has won. A stalemate occurs when all the cells on the grid have been filled with tokens and neither player has achieved a win. Write a program...
In a game of Tic Tac Toe, two players take turns making an available cell in a 3 x 3 grid with their respective tokens (either X or O). When one player has placed three tokens in a horizontal, vertical, or diagonal row on the grid, the game is over and that player has won. A stalemate occurs when all the cells on the grid have been filled with tokens and neither player has achieved a win. Write a program...
In traditional Tic Tac Toe game, two players take turns to mark grids with noughts and crosses on the 3 x 3 game board. The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row in the game board wins the game. Super Tic Tac Toe game also has a 3 x 3 game board with super grid. Each super grid itself is a traditional Tic Tac Toe board. Winning a game of Tic...
Write a program to Simulate a game of tic tac toe. A game of tic tac toe has two players. A Player class is required to store /represent information about each player. The UML diagram is given below.Player-name: string-symbol :charPlayer (name:string,symbol:char)getName():stringgetSymbol():chargetInfo():string The tic tac toe board will be represented by a two dimensional array of size 3 by 3 characters. At the start of the game each cell is empty (must be set to the underscore character ‘_’). Program flow:1) ...
Hi, I am a student in college who is trying to make a tic tac toe game on Java. Basically, we have to make our own game, even ones that already exist, on Java. We also have to implement an interface, that I have no idea exactly. The professor also stated we need at least 2 different data structures and algorithms for the code. The professor said we could use code online, we'd just have to make some of our...
(Tic-Tac-Toe) Create a class Tic-Tac-Toe that will enable you to write a program to play Tic-Tac-Toe. The class contains a private 3-by-3 two-dimensional array. Use an enumeration to represent the value in each cell of the array. The enumeration’s constants should be named X, O and EMPTY (for a position that does not contain an X or an O). The constructor should initialize the board elements to EMPTY. Allow two human players. Wherever the first player moves, place an X...
You will create a PYTHON program for Tic-Tac-Toe game. Tic-Tac-Toe is normally played with two people. One player is X and the other player is O. Players take turns placing their X or O. If a player gets three of his/her marks on the board in a row, column, or diagonal, he/she wins. When the board fills up with neither player winning, the game ends in a draw 1) Player 1 VS Player 2: Two players are playing the game...
18. Tic-Tac-Toe Game rite a program that allows two players to play a game of tic-tac-toe. Use dimensional char array with three rows and three columns as the game board. Each element of the array should be initialized with an asterisk (*). The program should run a loop that does the following: Write . Displays the contents of the board array. . Allows player 1 to select a location on the board for an X. The program should ask the...