Я пытаюсь заставить игровую доску соединить четыре игровые фигуры (показать внизу / повернуть с белого на красный) доски, если пользователь щелкает по верхнему ряду любого столбца, а кружок под ним - белый.
У меня есть массив 2d, инициализированный для fx: id каждого круга. Тестовый оператор печати «Прибыл» никогда не отображается, поэтому может случиться так, что он никогда не введет этот оператор if. Я могу предоставить больше моего кода, если это необходимо, но другие методы продемонстрировали, что они должны делать то, что я ожидаю.
private final Circle[][] circles = {{c00, c01, c02, c03, c04, c05, c06},
{c10, c11, c12, c13, c14, c15, c16},
{c20, c21, c22, c23, c24, c25, c26},
{c30, c31, c32, c33, c34, c35, c36},
{c40, c41, c42, c43, c44, c45, c46},
{c50, c51, c52, c53, c54, c55, c56}};
private void onPlayerMove(MouseEvent event)
{ //occurs with mouse click on any circle
Circle c = (Circle)event.getSource();
Integer selectedCol = GridPane.getColumnIndex(c);
if(selectedCol == null)
{
selectedCol = 0;
}
System.out.println(selectedCol);
for(int row = 5; row >= 0; row--)
{ //start at bottom of a column and work upward
System.out.println(row);
if(circles[row][selectedCol].getFill() == Color.WHITE)
{
System.out.println("Arrived");
insertCircle(c);
}
}
}
Если я просто вызываю insertCircle (c) без цикла, я могучередуйте любой цвет круга. Операторы system out показывают строку и столбец, которые я ожидаю, поэтому я не уверен, что проверка не понравилась: if(circles[row][selectedCol].getFill() == Color.WHITE)
Любая помощь будет принята.