【发布时间】:2014-05-11 18:10:11
【问题描述】:
这里是我的源代码: http://www.4shared.com/file/qV0PQXXsba/TicTacToe.html
嘿,我在按钮上使用图像,所以也禁用它们以工作...
(tttp.button[i].setIcon(new ImageIcon("o.gif"));)
(tttp.button[i].setIcon(new ImageIcon("x.gif"));)
运行我的代码并查看 TicTacToeComputer 类和 ButtonComputerWork 类...我在 actionperformed(ActionEvent e) 中遇到问题的地方??
/井字游戏人工智能工作正常,但在这里我必须点击两次才能获得玩家机会和电脑机会?请提前帮助和感谢..??如何让计算机利用自己的机会/对不起语言不好..:)
/* button listener*/
public void actionPerformed(ActionEvent e)
{
TicTacToePlayer.count++; //TicTacToePlayer.count=0 & nothing else
for(int i=0;i<tttc.button.length;i++) // JButton button[9];
{
if(e.getSource()==tttc.button[i]) // every time i have to click button ?
{
if(!(TicTacToePlayer.count % 2 == 0))
{
TicTacToePlayer.letter="<html><font face=Jokerman size=15 color=red>X</font></html>";
tttc.button[i].setText(TicTacToePlayer.letter);
tttc.button[i].setEnabled(false);
}
else
{
tttc.button[i].requestFocus();
TicTacToePlayer.letter="<html><font face=Jokerman size=15 color=red>O</font></html>";
ButtonComputerWork.move();
}
ButtonComputerWork.checkComputerWin();
}
}
}
}
/* Method ButtonComputerWork.move();*/
static void move()
{
if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[1].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[2].getText().equals(""))
{
tttc.button[2].setText(TicTacToePlayer.letter);
tttc.button[2].setEnabled(false);
}
else if(tttc.button[3].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[5].getText().equals(""))
{
tttc.button[5].setText(TicTacToePlayer.letter);
tttc.button[5].setEnabled(false);
}
else if(tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[7].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals(""))
{
tttc.button[8].setText(TicTacToePlayer.letter);
tttc.button[8].setEnabled(false);
}
else if(tttc.button[1].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[0].getText().equals(""))
{
tttc.button[0].setText(TicTacToePlayer.letter);
tttc.button[0].setEnabled(false);
}
else if(tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[5].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[3].getText().equals(""))
{
tttc.button[3].setText(TicTacToePlayer.letter);
tttc.button[3].setEnabled(false);
}
else if(tttc.button[7].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[6].getText().equals(""))
{
tttc.button[6].setText(TicTacToePlayer.letter);
tttc.button[6].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[1].getText().equals(""))
{
tttc.button[1].setText(TicTacToePlayer.letter);
tttc.button[1].setEnabled(false);
}
else if(tttc.button[3].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[5].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
else if(tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[7].getText().equals(""))
{
tttc.button[7].setText(TicTacToePlayer.letter);
tttc.button[7].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[3].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[6].getText().equals(""))
{
tttc.button[6].setText(TicTacToePlayer.letter);
tttc.button[6].setEnabled(false);
}
else if(tttc.button[1].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[7].getText().equals(""))
{
tttc.button[7].setText(TicTacToePlayer.letter);
tttc.button[7].setEnabled(false);
}
else if(tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[5].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals(""))
{
tttc.button[8].setText(TicTacToePlayer.letter);
tttc.button[8].setEnabled(false);
}
else if(tttc.button[3].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[0].getText().equals(""))
{
tttc.button[0].setText(TicTacToePlayer.letter);
tttc.button[0].setEnabled(false);
}
else if(tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[7].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[1].getText().equals(""))
{
tttc.button[1].setText(TicTacToePlayer.letter);
tttc.button[1].setEnabled(false);
}
else if(tttc.button[5].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[2].getText().equals(""))
{
tttc.button[2].setText(TicTacToePlayer.letter);
tttc.button[2].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[3].getText().equals(""))
{
tttc.button[3].setText(TicTacToePlayer.letter);
tttc.button[3].setEnabled(false);
}
else if(tttc.button[1].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[7].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
else if(tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[5].getText().equals(""))
{
tttc.button[5].setText(TicTacToePlayer.letter);
tttc.button[5].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals(""))
{
tttc.button[8].setText(TicTacToePlayer.letter);
tttc.button[8].setEnabled(false);
}
else if(tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[0].getText().equals(""))
{
tttc.button[0].setText(TicTacToePlayer.letter);
tttc.button[0].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
else if(tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[6].getText().equals(""))
{
tttc.button[6].setText(TicTacToePlayer.letter);
tttc.button[6].setEnabled(false);
}
else if(tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[2].getText().equals(""))
{
tttc.button[2].setText(TicTacToePlayer.letter);
tttc.button[2].setEnabled(false);
}
else if(tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[1].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[2].getText().equals(""))
{
tttc.button[2].setText(TicTacToePlayer.letter);
tttc.button[2].setEnabled(false);
}
else if(tttc.button[3].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[5].getText().equals(""))
{
tttc.button[5].setText(TicTacToePlayer.letter);
tttc.button[5].setEnabled(false);
}
else if(tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[7].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals(""))
{
tttc.button[8].setText(TicTacToePlayer.letter);
tttc.button[8].setEnabled(false);
}
else if(tttc.button[1].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[0].getText().equals(""))
{
tttc.button[0].setText(TicTacToePlayer.letter);
tttc.button[0].setEnabled(false);
}
else if(tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[5].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[3].getText().equals(""))
{
tttc.button[3].setText(TicTacToePlayer.letter);
tttc.button[3].setEnabled(false);
}
else if(tttc.button[7].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[6].getText().equals(""))
{
tttc.button[6].setText(TicTacToePlayer.letter);
tttc.button[6].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[1].getText().equals(""))
{
tttc.button[1].setText(TicTacToePlayer.letter);
tttc.button[1].setEnabled(false);
}
else if(tttc.button[3].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[5].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
else if(tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[7].getText().equals(""))
{
tttc.button[7].setText(TicTacToePlayer.letter);
tttc.button[7].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[3].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[6].getText().equals(""))
{
tttc.button[6].setText(TicTacToePlayer.letter);
tttc.button[6].setEnabled(false);
}
else if(tttc.button[1].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[7].getText().equals(""))
{
tttc.button[7].setText(TicTacToePlayer.letter);
tttc.button[7].setEnabled(false);
}
else if(tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[5].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals(""))
{
tttc.button[8].setText(TicTacToePlayer.letter);
tttc.button[8].setEnabled(false);
}
else if(tttc.button[3].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[0].getText().equals(""))
{
tttc.button[0].setText(TicTacToePlayer.letter);
tttc.button[0].setEnabled(false);
}
else if(tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[7].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[1].getText().equals(""))
{
tttc.button[1].setText(TicTacToePlayer.letter);
tttc.button[1].setEnabled(false);
}
else if(tttc.button[5].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[2].getText().equals(""))
{
tttc.button[2].setText(TicTacToePlayer.letter);
tttc.button[2].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[3].getText().equals(""))
{
tttc.button[3].setText(TicTacToePlayer.letter);
tttc.button[3].setEnabled(false);
}
else if(tttc.button[1].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[7].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
else if(tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[5].getText().equals(""))
{
tttc.button[5].setText(TicTacToePlayer.letter);
tttc.button[5].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals(""))
{
tttc.button[8].setText(TicTacToePlayer.letter);
tttc.button[8].setEnabled(false);
}
else if(tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[0].getText().equals(""))
{
tttc.button[0].setText(TicTacToePlayer.letter);
tttc.button[0].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
else if(tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[6].getText().equals(""))
{
tttc.button[6].setText(TicTacToePlayer.letter);
tttc.button[6].setEnabled(false);
}
else if(tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[2].getText().equals(""))
{
tttc.button[2].setText(TicTacToePlayer.letter);
tttc.button[2].setEnabled(false);
}
else if(tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
else if(tttc.button[0].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[8].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>"))
{
tttc.button[5].setText(TicTacToePlayer.letter);
tttc.button[5].setEnabled(false);
}
else if(tttc.button[2].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>") && tttc.button[4].getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") && tttc.button[6].getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>"))
{
tttc.button[3].setText(TicTacToePlayer.letter);
tttc.button[3].setEnabled(false);
}
else if(tttc.button[4].getText().equals(""))
{
tttc.button[4].setText(TicTacToePlayer.letter);
tttc.button[4].setEnabled(false);
}
else if(tttc.button[0].getText().equals(""))
{
tttc.button[0].setText(TicTacToePlayer.letter);
tttc.button[0].setEnabled(false);
}
ButtonComputerWork.random();
}
}
/*random method used*/
static void random()
{
int random;
if(TicTacToePlayer.count<=9)
{
random=0;
while(random == 0) {
random = (int)(Math.random() * 10);
}
if(ButtonComputerWork.doRandomMove(tttc.button[random]))
{
tttc.button[random].setText("<html><font face=Jokerman size=15 color=red>O</font></html>");
tttc.button[random].setEnabled(false);
}
else
{
random();
}
}
}
static boolean doRandomMove(JButton button)
{
if(button.getText().equals("<html><font face=Jokerman size=15 color=red>O</font></html>") || button.getText().equals("<html><font face=Jokerman size=15 color=red>X</font></html>"))
return false;
else
{
return true;
}
}
static void checkComputerWin()
{
if(tttc.button[0].getText()==tttc.button[1].getText() && tttc.button[1].getText()==tttc.button[2].getText() && tttc.button[0].getText()!="")
{
TicTacToePlayer.win=true;}
else if(tttc.button[3].getText()==tttc.button[4].getText() && tttc.button[4].getText()==tttc.button[5].getText() && tttc.button[3].getText()!="")
{
TicTacToePlayer.win=true;}
else if(tttc.button[6].getText()==tttc.button[7].getText() && tttc.button[7].getText()==tttc.button[8].getText() && tttc.button[6].getText()!="")
{
TicTacToePlayer.win=true;}
else if(tttc.button[0].getText()==tttc.button[3].getText() && tttc.button[3].getText()==tttc.button[6].getText() && tttc.button[0].getText()!="")
{
TicTacToePlayer.win=true;}
else if(tttc.button[1].getText()==tttc.button[4].getText() && tttc.button[4].getText()==tttc.button[7].getText() && tttc.button[1].getText()!="")
{
TicTacToePlayer.win=true;}
else if(tttc.button[2].getText()==tttc.button[5].getText() && tttc.button[5].getText()==tttc.button[8].getText()&& tttc.button[2].getText()!="")
{
TicTacToePlayer.win=true;}
else if(tttc.button[0].getText()==tttc.button[4].getText() && tttc.button[4].getText()==tttc.button[8].getText() && tttc.button[0].getText()!="")
{
TicTacToePlayer.win=true;}
else if(tttc.button[2].getText()==tttc.button[4].getText() && tttc.button[4].getText()==tttc.button[6].getText()&& tttc.button[2].getText()!="")
{
TicTacToePlayer.win=true;
}
else
{
TicTacToePlayer.win=false;
}
if(TicTacToePlayer.count>=9)
{
ImageIcon icontie=new ImageIcon("cry.gif");
JOptionPane.showMessageDialog(null, "The game was tie!","Tie Game",JOptionPane.ERROR_MESSAGE,icontie);
ImageIcon iconnew=new ImageIcon("newgame.gif");
int answer = JOptionPane.showConfirmDialog(null, "Start", "Do you want to start a New Game ?",0,JOptionPane.YES_NO_OPTION,iconnew);
if (answer == JOptionPane.YES_OPTION)
{
TicTacToePlayer.count=0;
tttc.setVisible(false);
new TicTacToeComputer("Wanna Play TicTacToe...!!!");
}
else
{
ImageIcon iconexit=new ImageIcon("bye.gif");
JOptionPane.showMessageDialog(null, "Thank you " + TicTacToePlayer.x+ " and " + TicTacToePlayer.z + " for playing","Thank You",JOptionPane.INFORMATION_MESSAGE,iconexit);
System.exit(0);
}
}
if(TicTacToePlayer.win==true)
{
if(TicTacToePlayer.letter=="<html><font face=Jokerman size=15 color=red>X</font></html>")
{
TicTacToePlayer.count=0;
tttc.setVisible(false);
new AnimationComputerX();
}
if(TicTacToePlayer.letter=="<html><font face=Jokerman size=15 color=red>O</font></html>")
{
TicTacToePlayer.count=0;
tttc.setVisible(false);
new AnimationComputerO();
}
}
}
【问题讨论】:
-
嘿检查我的源代码然后告诉我我犯的错误..??开始游戏然后去玩家对电脑然后开始游戏你知道我的意思吗??
标签: java user-interface logic