Sie sind auf Seite 1von 11

/**

* @(#)tictactoe.java
*
*
* @author
* @version 1.00 2010/11/19
*/
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import java.util.EventListener;
class giaodien extends JFrame implements ActionListener
{
int luotdi=1;
boolean win=false;
int n=3;
int m =3;
JLabel lbltd = new JLabel("-----------------------------------------------GA
ME TICTACTOE------------------------------------------------");
JButton [][] btn= new JButton[n][m] ;
JButton btnstar = new JButton("Star game");
ImageIcon hinhx = new ImageIcon("x.png");
ImageIcon hinho = new ImageIcon("o.png");
JButton btnexit = new JButton("Exit");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
giaodien(){}
giaodien(String td)
{
super(td);
setLayout(new BorderLayout());
add(lbltd,BorderLayout.NORTH );
for(int i = 0;i<n;i++)
for(int j=0;j<m;j++)
{
btn[i][j] = new JButton();
p1.add(btn[i][j]);
btn[i][j].setBackground(new Color(89,162,233) );
btn[i][j].addActionListener(this);
}
p1.setLayout(new GridLayout(3,3));
p2.add(btnstar);
p2.add(btnexit);
//add(p1,BorderLayout.CENTER);
p1.setVisible(false);
add(p2,BorderLayout.CENTER);
p2.setVisible(true);
setSize(500,300);
show();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
btnstar.addActionListener(this);
btnexit.addActionListener(this);
}
void checkwin()
{
if ((!btn[0][2].getText().equals(""))&&btn[0][2].getText().equals(btn[1][1].getT
ext())&&btn[1][1].getText().equals(btn[2][0].getText()))

{
win=true;
//JOptionPane.showMessageDialog(this,"aaaa");
}
for (int i = 0; i < 3; i++)
{
if ((!btn[i][0].getText().equals(""))&&(btn[i][0].getText().equals(btn[i][2].get
Text()))&&(btn[i][1].getText().equals(btn[i][2].getText())))
{
win=true;
}
}
for (int j = 0; j < 3; j++)
{
if ((!btn[0][j].getText().equals(""))&&(btn[0][j].getText().equals(btn[1][j].get
Text()))&&(btn[1][j].getText().equals(btn[2][j].getText())))
{
win=true;
}
}
if ((!btn[0][0].getText().equals(""))&&(btn[0][0].getText().equals(btn[1][1].get
Text()))&&(btn[1][1].getText().equals(btn[2][2].getText())))
{
win=true;
}

if(win)
{
if((luotdi % 2 ==0))
{
JOptionPane.showMessageDialog(this,"X Win");
System.exit(0);
}
else
{
JOptionPane.showMessageDialog(this,"O Win");
System.exit(0);
}
win=false;
}
else if(!win&&luotdi>9)
{
JOptionPane.showMessageDialog(this,"Draw !!!");
}
}
public void AI(){
luotdi++;
if(btn[0][0].getText().equals("O") && btn[0][1].getText().equals("O") &&
btn[0][2].getText().equals(""))
{
btn[0][2].setText("O");
btn[0][2].setIcon(hinho);
btn[0][2].setEnabled(false);
}

else if(btn[1][0].getText().equals("O") && btn[1][1].getText().equals("O


") && btn[1][2].getText().equals(""))
{
btn[1][2].setText("O");
btn[1][2].setIcon(hinho);
btn[1][2].setEnabled(false);
}
else if(btn[2][0].getText().equals("O") && btn[2][1].getText().equals("O
") && btn[2][2].getText().equals(""))
{
btn[2][2].setText("O");
btn[2][2].setIcon(hinho);
btn[2][2].setEnabled(false);
}
else if(btn[0][1].getText().equals("O") && btn[0][2].getText().equals("O
") && btn[0][0].getText().equals(""))
{
btn[0][0].setText("O");
btn[0][0].setIcon(hinho);
btn[0][0].setEnabled(false);
}
else if(btn[1][1].getText().equals("O") && btn[1][2].getText().equals("O
") && btn[1][0].getText().equals(""))
{
btn[1][0].setText("O");
btn[1][0].setIcon(hinho);
btn[1][0].setEnabled(false);
}
else if(btn[2][1].getText().equals("O") && btn[2][2].getText().equals("O
") && btn[2][0].getText().equals(""))
{
btn[2][0].setText("O");
btn[2][0].setIcon(hinho);
btn[2][0].setEnabled(false);
}
else if(btn[0][0].getText().equals("O") && btn[0][2].getText().equals("O
") && btn[0][1].getText().equals(""))
{
btn[0][1].setText("O");
btn[0][1].setIcon(hinho);
btn[0][1].setEnabled(false);
}
else if(btn[1][0].getText().equals("O") && btn[1][2].getText().equals("O
") && btn[1][1].getText().equals(""))
{
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[2][0].getText().equals("O") && btn[2][2].getText().equals("O
") && btn[2][1].getText().equals(""))
{
btn[2][1].setText("O");

btn[2][1].setIcon(hinho);
btn[2][1].setEnabled(false);
}
else if(btn[0][0].getText().equals("O") && btn[1][0].getText().equals("O
") && btn[2][0].getText().equals(""))
{
btn[2][0].setText("O");
btn[2][0].setIcon(hinho);
btn[2][0].setEnabled(false);
}
else if(btn[0][1].getText().equals("O") && btn[1][1].getText().equals("O
") && btn[2][1].getText().equals(""))
{
btn[2][1].setText("O");
btn[2][1].setIcon(hinho);
btn[2][1].setEnabled(false);
}
else if(btn[0][2].getText().equals("O") && btn[1][2].getText().equals("O
") && btn[2][2].getText().equals(""))
{
btn[2][2].setText("O");
btn[2][2].setIcon(hinho);
btn[2][2].setEnabled(false);
}
else if(btn[1][0].getText().equals("O") && btn[2][0].getText().equals("O
") && btn[0][0].getText().equals(""))
{
btn[0][0].setText("O");
btn[0][0].setIcon(hinho);
btn[0][0].setEnabled(false);
}
else if(btn[1][1].getText().equals("O") && btn[2][1].getText().equals("O
") && btn[0][1].getText().equals(""))
{
btn[0][1].setText("O");
btn[0][1].setIcon(hinho);
btn[0][1].setEnabled(false);
}
else if(btn[1][2].getText().equals("O") && btn[2][2].getText().equals("O
") && btn[0][2].getText().equals(""))
{
btn[0][2].setText("O");
btn[0][2].setIcon(hinho);
btn[0][2].setEnabled(false);
}
else if(btn[0][0].getText().equals("O") && btn[2][0].getText().equals("O
") && btn[1][0].getText().equals(""))
{
btn[1][0].setText("O");
btn[1][0].setIcon(hinho);
btn[1][0].setEnabled(false);
}
else if(btn[0][1].getText().equals("O") && btn[2][1].getText().equals("O
") && btn[1][1].getText().equals(""))
{

btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[0][2].getText().equals("O") && btn[2][2].getText().equals("O
") && btn[1][2].getText().equals(""))
{
btn[1][2].setText("O");
btn[1][2].setIcon(hinho);
btn[1][2].setEnabled(false);
}
else if(btn[0][0].getText().equals("O") && btn[1][1].getText().equals("O
") && btn[2][2].getText().equals(""))
{
btn[2][2].setText("O");
btn[2][2].setIcon(hinho);
btn[2][2].setEnabled(false);
}
else if(btn[1][1].getText().equals("O") && btn[2][2].getText().equals("O
") && btn[0][0].getText().equals(""))
{
btn[0][0].setText("O");
btn[0][0].setIcon(hinho);
btn[0][0].setEnabled(false);
}
else if(btn[0][0].getText().equals("O") && btn[2][2].getText().equals("O
") && btn[1][1].getText().equals(""))
{
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[0][2].getText().equals("O") && btn[1][1].getText().equals("O
") && btn[2][0].getText().equals(""))
{
btn[2][0].setText("O");
btn[2][0].setIcon(hinho);
btn[2][0].setEnabled(false);
}
else if(btn[2][0].getText().equals("O") && btn[1][1].getText().equals("O
") && btn[0][2].getText().equals(""))
{btn[0][2].setText("O");
btn[0][2].setIcon(hinho);
btn[0][2].setEnabled(false);
}
else if(btn[2][0].getText().equals("O") && btn[0][2].getText().equals("O
") && btn[1][1].getText().equals(""))
{
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[0][0].getText().equals("X") && btn[0][1].getText().equals("X
") && btn[0][2].getText().equals(""))
{
btn[0][2].setText("O");
btn[0][2].setIcon(hinho);

btn[0][2].setEnabled(false);
}
else if(btn[1][0].getText().equals("X") && btn[1][1].getText().equals("X
") && btn[1][2].getText().equals(""))
{
btn[1][2].setText("O");
btn[1][2].setIcon(hinho);
btn[1][2].setEnabled(false);
}
else if(btn[2][0].getText().equals("X") && btn[2][1].getText().equals("X
") && btn[2][2].getText().equals(""))
{
btn[2][2].setText("O");
btn[2][2].setIcon(hinho);
btn[2][2].setEnabled(false);
}
else if(btn[0][1].getText().equals("X") && btn[0][2].getText().equals("X
") && btn[0][0].getText().equals(""))
{
btn[0][0].setText("O");
btn[0][0].setIcon(hinho);
btn[0][0].setEnabled(false);
}
else if(btn[1][1].getText().equals("X") && btn[1][2].getText().equals("X
") && btn[1][0].getText().equals(""))
{
btn[1][0].setText("O");
btn[1][0].setIcon(hinho);
btn[1][0].setEnabled(false);
}
else if(btn[2][1].getText().equals("X") && btn[2][2].getText().equals("X
") && btn[2][0].getText().equals(""))
{
btn[2][0].setText("O");
btn[2][0].setIcon(hinho);
btn[2][0].setEnabled(false);
}
else if(btn[0][0].getText().equals("X") && btn[0][2].getText().equals("X
") && btn[0][1].getText().equals(""))
{
btn[0][1].setText("O");
btn[0][1].setIcon(hinho);
btn[0][1].setEnabled(false);
}
else if(btn[1][0].getText().equals("X") && btn[1][2].getText().equals("X
") && btn[1][1].getText().equals(""))
{
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[2][0].getText().equals("X") && btn[2][2].getText().equals("X
") && btn[2][1].getText().equals(""))
{
btn[2][1].setText("O");
btn[2][1].setIcon(hinho);
btn[2][1].setEnabled(false);
}

else if(btn[0][0].getText().equals("X") && btn[1][0].getText().equals("X


") && btn[2][0].getText().equals(""))
{
btn[2][0].setText("O");
btn[2][0].setIcon(hinho);
btn[2][0].setEnabled(false);
}
else if(btn[0][1].getText().equals("X") && btn[1][1].getText().equals("X
") && btn[2][1].getText().equals(""))
{
btn[2][1].setText("O");
btn[2][1].setIcon(hinho);
btn[2][1].setEnabled(false);
}
else if(btn[0][2].getText().equals("X") && btn[1][2].getText().equals("X
") && btn[2][2].getText().equals(""))
{
btn[2][2].setText("O");
btn[2][2].setIcon(hinho);
btn[2][2].setEnabled(false);
}
else if(btn[1][0].getText().equals("X") && btn[2][0].getText().equals("X
") && btn[0][0].getText().equals(""))
{
btn[0][0].setText("O");
btn[0][0].setIcon(hinho);
btn[0][0].setEnabled(false);
}
else if(btn[1][1].getText().equals("X") && btn[2][1].getText().equals("X
") && btn[0][1].getText().equals(""))
{
btn[0][1].setText("O");
btn[0][1].setIcon(hinho);
btn[0][1].setEnabled(false);
}
else if(btn[1][2].getText().equals("X") && btn[2][2].getText().equals("X
") && btn[0][2].getText().equals(""))
{
btn[0][2].setText("O");
btn[0][2].setIcon(hinho);
btn[0][2].setEnabled(false);
}
else if(btn[0][0].getText().equals("X") && btn[2][0].getText().equals("X
") && btn[1][0].getText().equals(""))
{
btn[1][0].setText("O");
btn[1][0].setIcon(hinho);
btn[1][0].setEnabled(false);
}
else if(btn[0][1].getText().equals("X") && btn[2][1].getText().equals("X
") && btn[1][1].getText().equals(""))
{
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[0][2].getText().equals("X") && btn[2][2].getText().equals("X

") && btn[1][2].getText().equals(""))


{
btn[1][2].setText("O");
btn[1][2].setIcon(hinho);
btn[1][2].setEnabled(false);
}
else if(btn[0][0].getText().equals("X") && btn[1][1].getText().equals("X
") && btn[2][2].getText().equals(""))
{
btn[2][2].setText("O");
btn[2][2].setIcon(hinho);
btn[2][2].setEnabled(false);
}
else if(btn[1][1].getText().equals("X") && btn[2][2].getText().equals("X
") && btn[0][0].getText().equals(""))
{
btn[0][0].setText("O");
btn[0][0].setIcon(hinho);
btn[0][0].setEnabled(false);
}
else if(btn[0][0].getText().equals("X") && btn[2][2].getText().equals("X
") && btn[1][1].getText().equals(""))
{
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[0][2].getText().equals("X") && btn[1][1].getText().equals("X
") && btn[2][0].getText().equals(""))
{
btn[2][0].setText("O");
btn[2][0].setIcon(hinho);
btn[2][0].setEnabled(false);
}
else if(btn[2][0].getText().equals("X") && btn[1][1].getText().equals("X
") && btn[0][2].getText().equals(""))
{
btn[0][2].setText("O");
btn[0][2].setIcon(hinho);
btn[0][2].setEnabled(false);
}
else if(btn[2][0].getText().equals("X") && btn[0][2].getText().equals("X
") && btn[1][1].getText().equals(""))
{
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
/*else if(btn[0][0].getText().equals("X") && btn[1][1].getText().equals(
"O") && btn[2][2].getText().equals("X"))
{
btn[1][2].setText("O");
btn[1][2].setIcon(hinho);
btn[1][2].setEnabled(false);
}
*/

else if(btn[0][2].getText().equals("X") && btn[1][1].getText().equals("O


") && btn[2][0].getText().equals("X"))
{
btn[1][0].setText("O");
btn[1][0].setIcon(hinho);
btn[1][0].setEnabled(false);
}
else if(btn[0][0].getText().equals("X") && btn[2][1].getText().equals("X
") && btn[1][1].getText().equals("O")&& btn[0][1].getText().equals("O"))
{
btn[2][0].setText("O");
btn[2][0].setIcon(hinho);
btn[2][0].setEnabled(false);
}
else if(btn[0][0].getText().equals("X") && btn[2][1].getText().equals("X
")&& btn[0][2].getText().equals("X") && btn[1][1].getText().equals("O")&& btn[0]
[1].getText().equals("O")&& btn[1][2].getText().equals("O"))
{
btn[1][2].setText("O");
btn[1][2].setIcon(hinho);
btn[1][2].setEnabled(false);
}
else if(btn[1][1].getText().equals(""))
{
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[0][0].getText().equals("X") && btn[1][1].getText().equa
ls("O") && btn[0][1].getText().equals(""))
{
btn[0][1].setText("O");
btn[0][1].setIcon(hinho);
btn[0][1].setEnabled(false);
}
else if(btn[0][1].getText().equals("X") && btn[1][1].getText().equal
s("O") && btn[2][0].getText().equals("X")&& btn[0][0].getText().equals("O")&& bt
n[2][2].getText().equals("X")&& btn[2][1].getText().equals("O"))
{
btn[1][0].setText("O");
btn[1][0].setIcon(hinho);
btn[1][0].setEnabled(false);
}
else if(btn[1][1].getText().equals("")){
btn[1][1].setText("O");
btn[1][1].setIcon(hinho);
btn[1][1].setEnabled(false);
}
else if(btn[0][0].getText().equals(""))
{
btn[0][0].setText("O");
btn[0][0].setIcon(hinho);
btn[0][0].setEnabled(false);
}
else {
if(luotdi > 8)

checkwin();
else
RandomMove();
}
checkwin();
}
public void RandomMove(){
int x = (int)Math.random()*2;
int y = (int)Math.random()*2;
if(btn[x][y].getText().equals("O") || btn[x][y].getText().equals("X") ){
RandomMove();
} else {
btn[x][y].setText("O");
btn[x][y].setIcon(hinho);
//btn[x][y].setEnabled(false);
}
}

public void actionPerformed(ActionEvent e) {


if(e.getSource()==btnstar)
{
add(p1,BorderLayout.CENTER);
p1.setVisible(true);
p2.setVisible(false);
}
if(e.getSource()==btnexit )
{
System.exit(0);
}
{
for(int i = 0;i<n;i++)
for(int j=0;j<m;j++)
if (
e.getSource()==btn[i][j] && luotdi <10)
{
btn[i][j].setText("X");
btn[i][j].setIcon(hinhx);
//
btn[i][j].removeActionListener(this);
btn[i][j].setEnabled(false);
}
luotdi++;
AI();
}
/*

{
if(!(luotdi % 2 ==0))
{
btn[i][j].setText("X");
btn[i][j].setIcon(hinhx);
}
else
{

btn[i][j].setText("0");
btn[i][j].setIcon(hinho);
}
luotdi++;
btn[i][j].setEnabled(false);
checkwin();
}
*/
// TODO: Add your code here
}
/*

public void checkwin()


{

JOptionPane.showMessageDialog(this,"Win");
}*/
}
public class tictactoe {
/**
* Creates a new instance of <code>tictactoe</code>.
*/
public tictactoe() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
giaodien gd = new giaodien("tictactoe");
// TODO code application logic here
}
}

Das könnte Ihnen auch gefallen