Моя проблема в том, что когда я пытаюсь получить некоторые объекты из массива, который я объявил как переменную экземпляра, я получаю нулевое значение вместо объекта, который я помещаю в мой массив.Как я знаю, массивы должны автоматически инициализироваться как любые другие переменные экземпляра, если мы установим некоторые значения по умолчанию.Я объясню это в деталях в коде ниже:
public class GameBoardAI implements IGameModel{
Random rand = new Random();
int currentPlayer = 1;
TicTacViewController tacController = new TicTacViewController();
Button[] buttonss = new Button[]{ tacController.btn1, tacController.btn2, tacController.btn3, tacController.btn4,
tacController.btn5, tacController.btn6, tacController.btn7, tacController.btn8, tacController.btn9};
Вот начало моего класса, и вот метод, который я пытаюсь использовать:
public void switchPlayer() {
if(currentPlayer == 1)
{
currentPlayer=2;
buttonss[rand.nextInt(9)].fire();
}
if(currentPlayer == 2)
currentPlayer = 1;
}
Вы можете увидеть здесь,что я пытаюсь получить случайную кнопку из массива кнопок, которые я создал в переменной экземпляра.Другая сбивающая с толку вещь заключается в том, что все работает хорошо, когда я создаю массив как локальную переменную внутри метода, а не создаю переменную экземпляра. Если это поможет, то здесь приведен код моего TicTacViewController, в котором расположены кнопки:
public class TicTacViewController implements Initializable
{
@FXML
private Label lblPlayer;
@FXML
private Button btnNewGame;
@FXML
private GridPane gridPane;
private static final String TXT_PLAYER = "Player: ";
private IGameModel game = new GameBoard();
@FXML
public Button btn1;
@FXML
public Button btn2;
@FXML
public Button btn3;
@FXML
public Button btn4;
@FXML
public Button btn5;
@FXML
public Button btn6;
@FXML
public Button btn7;
@FXML
public Button btn8;
@FXML
public Button btn9;