我正在尝试制作简单的井字游戏。我有一个函数,每次单击网格时都会放置一个符号。我有2个变量,分别用于不同的符号xSym
和circlSym
。每次调用函数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
变量的值选择的当前符号。