我正在使用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将该想法应用于井字游戏