【发布时间】:2015-07-03 09:34:30
【问题描述】:
public void WinnerCheck()
{
if (m_allButtons[0][0].getText() == m_allButtons[0][1].getText() && m_allButtons[0][1].getText() == m_allButtons[0][2].getText())
{
DisableAllButtons();
}
else if (m_allButtons[1][0].getText() == m_allButtons[1][1].getText() && m_allButtons[1][1].getText() == m_allButtons[1][2].getText())
{
DisableAllButtons();
}
}
private void AddAllEventHandlers()
{
if (m_allButtons != null)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
JButton currentButton = m_allButtons[i][j];
currentButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
ChangeButtonText(currentButton);
WinnerCheck();
}
});
}
}
}
}
当我在 ActionEvent 中调用 WinnerCheck() 方法时,它实际上同时禁用了所有按钮。一旦有人赢得井字游戏,我正在尝试将逻辑写入禁用所有按钮的位置;胜利我的意思是任何行或列具有相同的值(X 或 O),但没有任何玩家值或任何分配。它只是从 X 开始,并以相反的值交替每次点击。谢谢!
【问题讨论】:
-
如果要比较字符串,请使用
.equals而不是==。而且一个空字符串等价于另一个空字符串,所以当你检查时,你必须确保它们是“X”或“O”,而不仅仅是一个空字符串。 -
“我怎么写这个?”对于不是代码编写服务的 SO 来说,这可能是一个过于宽泛的问题。
标签: java tic-tac-toe