我正在用 JAVA 开发一个迷你项目,它正在构建一个 X/O 游戏,我在程序将找出下一个标志是“X”还是“O”的部分。所以我设置了一个事件监听器并等待用户点击按钮。我为每个按钮执行以下操作:
Button7.setBounds(50,180,80,30);
panel.add(Button7);
Button7.addActionListener(new ActionListener () {
@Override
public void actionPerformed(ActionEvent event) {
int countX = 0;
int countO = 0;
int difxo = 0;
String xo = "";
if (Button1.getText().equals("X"))
{
countX += 1;
}
else if (Button2.getText().equals("X"))
{
countX += 1;
}
else if (Button3.getText().equals("X"))
{
countX += 1;
}
else if (Button4.getText().equals("X"))
{
countX += 1;
}
else if (Button5.getText().equals("X"))
{
countX += 1;
}
else if (Button6.getText().equals("X"))
{
countX += 1;
}
else if (Button7.getText().equals("X"))
{
countX += 1;
}
else if (Button8.getText().equals("X"))
{
countX += 1;
}
else if (Button9.getText().equals("X"))
{
countX += 1;
}
else
{
countX += 0;
}
if (Button1.getText().equals("O"))
{
countO += 1;
}
else if (Button2.getText().equals("O"))
{
countO += 1;
}
else if (Button3.getText().equals("O"))
{
countO += 1;
}
else if (Button4.getText().equals("O"))
{
countO += 1;
}
else if (Button5.getText().equals("O"))
{
countO += 1;
}
else if (Button6.getText().equals("O"))
{
countO += 1;
}
else if (Button7.getText().equals("O"))
{
countO += 1;
}
else if (Button8.getText().equals("O"))
{
countO += 1;
}
else if (Button9.getText().equals("O"))
{
countO += 1;
}
difxo = countX - countO;
if (difxo == 0)
{
xo = "X";
}
else if (difxo == 1)
{
xo = "O";
}
countX = 0;
countO = 0;
Button7.setText(xo);
}
});
所以你可以弄清楚在 X/O 游戏中(当开始符号是 X 时)我们可以通过做一个基本的减法来假装哪个符号在后面。如果提取结果为 1:按钮中的符号必须为“O”,如果结果为 0,则符号必须为“X”。但是在我制作的程序中,对每个按钮单击事件重复相同的操作,我得到“X”“O”“X”“X”“X”而不是“X”“O”“X”“O”.. . 等等我不知道为什么会发生这种情况,因为每次我计算“X”和“O”时都会做减法。谢谢。