。私はプレーヤーの切り替えのためにまだフリップフロッターを持っていないことを知っている。私はこれを理解することはできません。あなたがTTTPlayer
オブジェクトをインスタンス化する必要がmain
でのjava.lang.NullPointerExceptionの三目並べプログラム
import java.util.*;
public class TTTPlayer {
public static String[][] board;
public static String currentPlayer;
public TTTPlayer() {
currentPlayer = "x";
board = new String[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";
}
public static void main(String[] args) {
inputMethod();
}
public static void inputMethod()
{
TicTacToeMain.printBoard();
Scanner Input = new Scanner(System.in);
System.out.println("Enter what square you would like to place in.");
String choice = Input.nextLine();
if(choice.equals("1")||choice.equals("2")||choice.equals("3")||choice.equals("4")||choice.equals("5")||choice.equals("6")||choice.equals("7")||choice.equals("8")||choice.equals("9"))
{
setBoard(choice);
}
else
{
System.out.println("That is not a valid choice, please retry.");
inputMethod();
}
}
public static void setBoard(String choice)
{
String choice1 = choice;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if(board[i][j].equals(choice1)){
board[i][j].equals(currentPlayer);
printBoard();
}
}
}
//System.out.println(choice1);
}
public static void printBoard()
{
System.out.println(board[0][0]+" | "+board[1][0]+" | "+board[2][0]);
System.out.println("——|———|——");
System.out.println(board[0][1]+" | "+board[1][1]+" | "+board[2][1]);
System.out.println("——|———|——");
System.out.println(board[0][2]+" | "+board[1][2]+" | "+board[2][2]);
}
}
私も元々重複としてこれを閉じますが、根本的な原因は、実際に私は、この原因はで答え見ることができなかったmain' 'から彼のクラスをインスタンス化しないことによって引き起こされ@henry二重。 –
@ScaryWombat私はまだそれが重複していると思います。変数を初期化してそれらをすべてリストすることができない多くの理由があります。根本的な問題は、通常、点検またはデバッガの起動によって診断するのが容易です。 – Henry