Обнаружение того, какой столбец сетки области был нажат - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь заставить игровую доску соединить четыре игровые фигуры (показать внизу / повернуть с белого на красный) доски, если пользователь щелкает по верхнему ряду любого столбца, а кружок под ним - белый.

У меня есть массив 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) Любая помощь будет принята.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...