我正在尝试切换布尔playerTurn以允许我控制方法。但是,它不起作用,方法将不会移动,也不会打印出其他打印语句。

moveC1But.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae)
        {
            diceRoll();
            private boolean playerTurn = true;
            if(playerTurn == true)
            {
                moveC1Up();
                firstPanel.repaint();
                System.out.print(diceRoll());
                System.out.print("Moving counter 1");
                playerTurn = !playerTurn;
            }else if(playerTurn == false)
            {
                moveC3Up();
                firstPanel.repaint();
                System.out.print(diceRoll());
                System.out.print("Moving counter 3");
                playerTurn = !playerTurn;
            }
        }
    });

最佳答案

这是您的操作:


我掷骰子
轮到我了!
是的,轮到我了,所以我向上移动,重新粉刷,这不是我的轮到
我退出


还是一样……出了点问题……第二个如果无法执行。

解:
在更高的类中创建一个playerTurn变量,而不是每次都在ActionListener中创建它。

使用调试器并分析程序的工作方式,然后您会发现出了问题。

07-24 13:24