我正在尝试制作简单的井字游戏。我有一个函数,每次单击网格时都会放置一个符号。我有2个变量,分别用于不同的符号xSymcirclSym。每次调用函数mouseClicked时,我都需要将放置的符号从一个更改为另一个。是否可以在没有任何功能返回的情况下这样做?

public void mouseClicked(MouseEvent e) {
    int r = e.getY() / cellH;
    int c = e.getX() / cellW;
    print(r, c, (char)xSym);
    refresh();
}

最佳答案

使boolean成员变量isX代表当前状态。设置isX时,选择xSym;否则,选择circleSym

最终用户每次单击您的应用程序时,将isX的状态更改为相反的状态。您可以为此使用NOT !运算符,如下所示:

boolean isX = true; // X moves first
public void mouseClicked(MouseEvent e) {
    char currentSym = isX ? xSym : circleSym;
    isX = !isX; // Invert isX
    int r = e.getY() / cellH;
    int c = e.getX() / cellW;
    print(r, c, currentSym);
    refresh();
}


变量currentSym表示基于isX变量的值选择的当前符号。

10-06 11:10