我正在使用Netbeans在Java上打井字游戏。我有一个带按钮的3x3电路板布局。单击按钮时,该按钮被禁用,字母“ X”或“ O”显示为按钮标签。当我测试我的游戏时,连续获得3个“ X”。直到我单击另一个按钮时,它才说我赢了。因此,直到我单击另一个按钮,我才赢了。我应该改用鼠标释放事件吗?

最佳答案

gameOver应该最后一次调用,因为在您更新按钮之前,您将不知道是否已达到获胜条件

您还可以通过使用操作源来大大减少代码

public class Listener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent ae) {
        Object source = ae.getSource();
        JButton btn = (JButton)source;
        btn.setEnabled(false);
        btn.setFont(new Font("Courier New", Font.BOLD, 56));
        counter++;
        if(counter % 2 == 0 && counter < 10){
            btn.setText("O");
            gameText.setText("X's Turn!");
        } else {
            btn.setText("X");
            gameText.setText("O's Turn!");
        }
        gameOver();
    }
}


您的gameOver检查在某种程度上受到限制,您可以使用look at this example来确定连接4中是否为获胜条件,但是想法是相同的。

如果您愿意,this example将该想法应用于井字游戏

07-28 13:05