guys I'm trying to build Tic-Tac-Toe from scratch by using java, I'm aware it's not may be perfect but I will try anyway! I wrote a function that should printing the board when I'm calling it but it's gives me NullPointerException idk why tbh
import java.io.*;
import java.util.*;
class Task_3{
static char[][] board;
static void checkWinner(){
String v=null;
for(int p=0;p<8;p++){
switch(p){
case 0:
v=String.valueOf(board[0][0]+board[0][1]+board[0][2]);
break;
case 1:
v=String.valueOf(board[1][0]+board[1][1]+board[1][2]);
break;
case 2:
v=String.valueOf(board[2][0]+board[2][1]+board[2][2]);
break;
case 3:
v=String.valueOf(board[0][0]+board[1][0]+board[2][0]);
break;
case 4:
v=String.valueOf(board[0][1]+board[1][1]+board[2][1]);
break;
case 5:
v=String.valueOf(board[0][2]+board[1][2]+board[2][2]);
break;
case 6:
v=String.valueOf(board[0][0]+board[1][1]+board[2][2]);
break;
case 7:
v=String.valueOf(board[0][2]+board[1][1]+board[2][0]);
break;
}
if (v.equals("XXX")){
System.out.println("X is The Winner!");
}else if(v.equals("OOO")){
System.out.println("O is The Winner!");
}else{
System.out.println("Tie");
}
}
}
static void printBoard()
{
System.out.println("|---|---|---|");
System.out.println("| " + board[0][0] + " | "
+ board[0][1] + " | " + board[0][2]
+ " |");
System.out.println("|-----------|");
System.out.println("| " + board[1][0] + " | "
+ board[1][1] + " | " + board[1][2]
+ " |");
System.out.println("|-----------|");
System.out.println("| " + board[2][0] + " | "
+ board[2][1] + " | " + board[2][2]
+ " |");
System.out.println("|---|---|---|");
}
public static void main (String[] args) {
int pos=0, xoro=1;
Scanner sc = new Scanner(System.in);
char[][] board = new char[3][3];
board[0][0]=1;
board[0][1]=2;
board[0][2]=3;
board[1][0]=4;
board[1][1]=5;
board[1][2]=6;
board[2][0]=7;
board[2][1]=8;
board[2][2]=9;
printBoard();
pos = sc.nextInt();
switch(pos){
case 1:
if (xoro % 2 == 0)
board[0][0]='O';
else
board[0][0]='X';
xoro++;
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
System.out.println(board[i][j]);
break;
case 2:
if (xoro % 2 == 0)
board[0][1]='O';
else
board[0][1]='X';
xoro++;
break;
case 3:
if (xoro % 2 == 0)
board[0][2]='O';
else
board[0][2]='X';
xoro++;
break;
case 4:
if (xoro % 2 == 0)
board[1][0]='O';
else
board[1][0]='X';
xoro++;
break;
case 5:
if (xoro % 2 == 0)
board[1][1]='O';
else
board[1][1]='X';
xoro++;
break;
case 6:
if (xoro % 2 == 0)
board[1][2]='O';
else
board[1][2]='X';
xoro++;
break;
case 7:
if (xoro % 2 == 0)
board[2][0]='O';
else
board[2][0]='X';
xoro++;
break;
case 8:
if (xoro % 2 == 0)
board[2][1]='O';
else
board[2][1]='X';
xoro++;
break;
case 9:
if (xoro % 2 == 0)
board[2][2]='O';
else
board[2][2]='X';
xoro++;
break;
}
}
}
and this is the error I got
|---|---|---|
Exception in thread "main" java.lang.NullPointerException
at Task_3.printBoard(Task_3.java:46)
at Task_3.main(Task_3.java:72)
Process completed.
tbh I don't know what seems what be the problem also I'm not that professional in java so sorry if it's was to basic. Thank you guys.. have a nice day.