import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.undo.CompoundEdit.*;
class TicTacToe
{
public static void main(String s[])
{
UserInterface uf=new UserInterface();
uf.setSize(400,300);
uf.setLocation(120,90);
uf.setResizable(false);
uf.setVisible(true);
}
}
class UserInterface extends JFrame implements ActionListener
{
JMenuBar jmb;
JMenu jm1,jm3;
JMenuItem jmi1,jmi2,jmi4;
UserInterface()
{
this.setTitle("TicTacToe");
jmb=new JMenuBar();
jm1=new JMenu("File");
jmi1=new JMenuItem("New");
jmi2=new JMenuItem("Exit");
jm1.add(jmi1);
jm1.addSeparator();
jm1.add(jmi2);
jmi1.addActionListener(this);
jmi2.addActionListener(this);
jm3=new JMenu("Player");
jmi4=new JMenuItem("Choose Player");
jm3.add(jmi4);
jmi4.addActionListener(this);
jmb.add(jm1);
jmb.add(jm3);
setJMenuBar(jmb);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
JMenuItem jmi=(JMenuItem)e.getSource();
if(jmi==jmi1)
{
UserInterface uf=new UserInterface();
uf.setSize(400,300);
uf.setLocation(120,90);
uf.setResizable(false);
uf.setVisible(true);
}
if(jmi==jmi2)
{
System.exit(0);
}
if(jmi==jmi4)
{
boolean flag=true;
String Pname=JOptionPane.showInputDialog("Enter Your Name..... ");
String Po=JOptionPane.showInputDialog("If u want to play as Leading player type ~1~ else type ~2~");
Pname=Pname.trim();
int p=Integer.parseInt(Po.trim());
this.setVisible(false);
Board b=new Board(Pname,p);
b.setSize(400,300);
b.setLocation(120,90);
b.setResizable(false);
b.setLayout(null);
b.setVisible(true);
}
}
}
class Board extends JFrame implements ActionListener
{
JMenuBar jmb;
JMenu jm1,jm2;
JMenuItem jmi1,jmi2,jmi3;
JButton jb[][]=new JButton[3][3];
int arr[][]=new int[3][3];
String Pname;
int Po,turn=1;
Board(String Pname,int Po)
{
this.Pname=Pname;
this.Po=Po;
//System.out.print(Pname);
//System.out.print(Po);
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
arr[i][j]=2;
this.setTitle("TicTacToe");
jmb=new JMenuBar();
jm1=new JMenu("File");
jmi1=new JMenuItem("New");
jmi2=new JMenuItem("Exit");
jm1.add(jmi1);
jm1.addSeparator();
jm1.add(jmi2);
jmi1.addActionListener(this);
jmi2.addActionListener(this);
jm2=new JMenu("Edit");
jmi3=new JMenuItem("Undo");
jm2.add(jmi3);
jmi3.addActionListener(this);
jmb.add(jm1);
jmb.add(jm2);
setJMenuBar(jmb);
if(this.Po==1)
{
//System.out.println(Pname);
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
jb[i][j]=new JButton("");
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
jb[i][j].setBounds(0+i*130,0+j*80,130,80);
add(jb[i][j]);
jb[i][j].addActionListener(this);
}
}
if(this.Po==2)
{
//System.out.println(Pname);
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
jb[i][j]=new JButton("");
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
jb[i][j].setBounds(0+i*130,0+j*80,130,80);
add(jb[i][j]);
jb[i][j].addActionListener(this);
}
OnClickT();
}
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
JComponent jc=(JComponent)e.getSource();
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
if(jc==jb[i][j])
{
if(Po==1)
{
jb[i][j].setText("X");
arr[i][j]=3;
if(turn<9)
{
int k=0,l=0;
turn++;
if(arr[0][0]*arr[2][2]*arr[1][1]==27)
{
/*Final f=new Final(this);
f.setSize(400,300);
f.setLocation(120,90);
f.setResizable(false);
f.setLayout(null);
f.setVisible(true);*/
this.setVisible(false);
new win(~P~,Pname);
}
else
{
if(arr[2][0]*arr[1][1]*arr[0][2]==27)
{
/*Final f=new Final(this);
f.setSize(400,300);
f.setLocation(120,90);
f.setResizable(false);
f.setLayout(null);
f.setVisible(true);*/
this.setVisible(false);
new win(~P~,Pname);
}
else
{
while(l==0)
{
for(k=0;k<3;k++)
{
if(arr[k][0]*arr[k][1]*arr[k][2]==27)
{
l++;
/*Final f=new Final(this);
f.setSize(400,300);
f.setLocation(120,90);
f.setResizable(false);
f.setLayout(null);
f.setVisible(true);*/
this.setVisible(false);
new win(~P~,Pname);
}
else
{
if(arr[0][k]*arr[1][k]*arr[2][k]==27)
{
l++;
/*Final f=new Final(this);
f.setSize(400,300);
f.setLocation(120,90);
f.setResizable(false);
f.setLayout(null);
f.setVisible(true);*/
this.setVisible(false);
new win(~P~,Pname);
}
}
System.out.println("k=="+k);
}
l++;
}
if(l!=2)
{
System.out.println("");
System.out.println("l!=2");
OnClickL();
}
}
}
//OnClickL();
}
else
{
this.setVisible(false);
new win(~D~,"Dwawn");
}
}
if(Po==2)
{
jb[i][j].setText("O");
arr[i][j]=5;
turn++;
int k=0,l=0;
if(arr[0][0]*arr[2][2]*arr[1][1]==125)
{
this.setVisible(false);
new win(~P~,Pname);
}
else
{
if(arr[2][0]*arr[1][1]*arr[0][2]==125)
{
this.setVisible(false);
new win(~P~,Pname);
}
else
{
while(l==0)
{
for(k=0;k<3;k++)
{
if(arr[k][0]*arr[k][1]*arr[k][2]==125)
{
l++;
this.setVisible(false);
new win(~P~,Pname);
}
else
{
if(arr[0][k]*arr[1][k]*arr[2][k]==125)
{
l++;
this.setVisible(false);
new win(~P~,Pname);
}
}
System.out.println("k=="+k);
}
l++;
}
if(l!=2)
{
System.out.println("");
System.out.println("l!=2");
OnClickT();
}
}
}
}
}
}
if(jc==(JComponent)jmi1)
{
UserInterface uf=new UserInterface();
uf.setSize(400,300);
uf.setLocation(120,90);
uf.setResizable(false);
uf.setVisible(true);
}
if(jc==(JComponent)jmi2)
{
System.exit(0);
}
if(jc==(JComponent)jmi3)
{
}
}
void OnClickT()
{
if(turn==1)
{
arr[0][0]=3;
jb[0][0].setText("X");
}
if(turn==3)
{
if(arr[2][2]!=2)
{
arr[2][0]=3;
jb[2][0].setText("X");
}
else
{
arr[2][2]=3;
jb[2][2].setText("X");
}
}
if(turn==5)
{
int n=posswin(~X~);
if(n!=0)
{
if(n==1)
{
arr[0][0]=3;
jb[0][0].setText("X");
}
if(n==2)
{
arr[1][0]=3;
jb[1][0].setText("X");
}
if(n==3)
{
arr[2][0]=3;
jb[2][0].setText("X");
}
if(n==4)
{
arr[0][1]=3;
jb[0][1].setText("X");
}
if(n==6)
{
arr[2][1]=3;
jb[2][1].setText("X");
}
if(n==7)
{
arr[0][2]=3;
jb[0][2].setText("X");
}
if(n==8)
{
arr[1][2]=3;
jb[1][2].setText("X");
}
if(n==9)
{
arr[2][2]=3;
jb[2][2].setText("X");
}
this.setVisible(false);
new win(~C~,Pname);
}
else
{
int m=posswin(~O~);
if(m!=0)
{
if(m==1)
{
arr[0][0]=3;
jb[0][0].setText("X");
}
if(m==2)
{
arr[1][0]=3;
jb[1][0].setText("X");
}
if(m==3)
{
arr[2][0]=3;
jb[2][0].setText("X");
}
if(m==4)
{
arr[0][1]=3;
jb[0][1].setText("X");
}
if(m==6)
{
arr[2][1]=3;
jb[2][1].setText("X");
}
if(m==7)
{
arr[0][2]=3;
jb[0][2].setText("X");
}
if(m==8)
{
arr[1][2]=3;
jb[1][2].setText("X");
}
if(m==9)
{
arr[2][2]=3;
jb[2][2].setText("X");
}
}
else
{
if(arr[0][2]==2)
{
arr[0][2]=3;
jb[0][2].setText("X");
}
else
{
arr[2][0]=3;
jb[2][0].setText("X");
}
}
}
}
if(turn==7)
{
int n=posswin(~X~);
if(n!=0)
{
if(n==1)
{
arr[0][0]=3;
jb[0][0].setText("X");
}
if(n==2)
{
arr[1][0]=3;
jb[1][0].setText("X");
}
if(n==3)
{
arr[2][0]=3;
jb[2][0].setText("X");
}
if(n==4)
{
arr[0][1]=3;
jb[0][1].setText("X");
}
if(n==6)
{
arr[2][1]=3;
jb[2][1].setText("X");
}
if(n==7)
{
arr[0][2]=3;
jb[0][2].setText("X");
}
if(n==8)
{
arr[1][2]=3;
jb[1][2].setText("X");
}
if(n==9)
{
arr[2][2]=3;
jb[2][2].setText("X");
}
this.setVisible(false);
new win(~C~,Pname);
}
else
{
int m=posswin(~O~);
if(m!=0)
{
if(m==1)
{
arr[0][0]=3;
jb[0][0].setText("X");
}
if(m==2)
{
arr[1][0]=3;
jb[1][0].setText("X");
}
if(m==3)
{
arr[2][0]=3;
jb[2][0].setText("X");
}
if(m==4)
{
arr[0][1]=3;
jb[0][1].setText("X");
}
if(m==6)
{
arr[2][1]=3;
jb[2][1].setText("X");
}
if(m==7)
{
arr[0][2]=3;
jb[0][2].setText("X");
}
if(m==8)
{
arr[1][2]=3;
jb[1][2].setText("X");
}
if(m==9)
{
arr[2][2]=3;
jb[2][2].setText("X");
}
}
else
{
int cou=0;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
if(cou<1 && arr[i][j]==2)
{
arr[i][j]=3;
jb[i][j].setText("X");
}
}
}
}
}
if(turn==9)
{
int n=posswin(~X~);
if(n!=0)
{
if(n==1)
{
arr[0][0]=3;
jb[0][0].setText("X");
}
if(n==2)
{
arr[1][0]=3;
jb[1][0].setText("X");
}
if(n==3)
{
arr[2][0]=3;
jb[2][0].setText("X");
}
if(n==4)
{
arr[0][1]=3;
jb[0][1].setText("X");
}
if(n==6)
{
arr[2][1]=3;
jb[2][1].setText("X");
}
if(n==7)
{
arr[0][2]=3;
jb[0][2].setText("X");
}
if(n==8)
{
arr[1][2]=3;
jb[1][2].setText("X");
}
if(n==9)
{
arr[2][2]=3;
jb[2][2].setText("X");
}
this.setVisible(false);
new win(~C~,Pname);
}
else
{
int m=posswin(~O~);
if(m!=0)
{
if(m==1)
{
arr[0][0]=3;
jb[0][0].setText("X");
}
if(m==2)
{
arr[1][0]=3;
jb[1][0].setText("X");
}
if(m==3)
{
arr[2][0]=3;
jb[2][0].setText("X");
}
if(m==4)
{
arr[0][1]=3;
jb[0][1].setText("X");
}
if(m==6)
{
arr[2][1]=3;
jb[2][1].setText("X");
}
if(m==7)
{
arr[0][2]=3;
jb[0][2].setText("X");
}
if(m==8)
{
arr[1][2]=3;
jb[1][2].setText("X");
}
if(m==9)
{
arr[2][2]=3;
jb[2][2].setText("X");
}
}
else
{
int cou=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(cou<1 && arr[i][j]==2)
{
arr[i][j]=3;
jb[i][j].setText("X");
}
}
}
this.setVisible(false);
new win(~D~,"Drawn");
}
}
}
turn++;
}
void OnClickL()
{
if(turn==2)
{
if(arr[1][1]!=2)
{
arr[0][0]=5;
jb[0][0].setText("O");
}
else
{
arr[1][1]=5;
jb[1][1].setText("O");
}
}
if(turn==4)
{
int n=posswin(~X~);
if(n!=0)
{
if(n==1)
{
arr[0][0]=5;
jb[0][0].setText("O");
}
if(n==2)
{
arr[1][0]=5;
jb[1][0].setText("O");
}
if(n==3)
{
arr[2][0]=5;
jb[2][0].setText("O");
}
if(n==4)
{
arr[0][1]=5;
jb[0][1].setText("O");
}
if(n==6)
{
arr[2][1]=5;
jb[2][1].setText("O");
}
if(n==7)
{
arr[0][2]=5;
jb[0][2].setText("O");
}
if(n==8)
{
arr[1][2]=5;
jb[1][2].setText("O");
}
if(n==9)
{
arr[2][2]=5;
jb[2][2].setText("O");
}
}
else
{
System.out.println("test");
int m=make2();
System.out.println(m);
if(m==2)
{
arr[1][0]=5;
jb[1][0].setText("O");
}
if(m==4)
{
arr[0][1]=5;
jb[0][1].setText("O");
}
if(m==5)
{
arr[1][1]=5;
jb[1][1].setText("O");
}
if(m==6)
{
arr[2][1]=5;
jb[2][1].setText("O");
}
if(m==8)
{
arr[1][2]=5;
jb[1][2].setText("O");
}
if(m==99)
{
int cou=0;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
if(arr[i][j]==2 && cou<1)
{
arr[i][j]=5;
jb[i][j].setText("O");
cou++;
}
}
}
}
}
if(turn==6)
{
int n=posswin(~O~);
if(n!=0)
{
if(n==1)
{
arr[0][0]=5;
jb[0][0].setText("O");
}
if(n==2)
{
arr[1][0]=5;
jb[1][0].setText("O");
}
if(n==3)
{
arr[2][0]=5;
jb[2][0].setText("O");
}
if(n==4)
{
arr[0][1]=5;
jb[0][1].setText("O");
}
if(n==6)
{
arr[2][1]=5;
jb[2][1].setText("O");
}
if(n==7)
{
arr[0][2]=5;
jb[0][2].setText("O");
}
if(n==8)
{
arr[1][2]=5;
jb[1][2].setText("O");
}
if(n==9)
{
arr[2][2]=5;
jb[2][2].setText("O");
}
this.setVisible(false);
new win(~C~,Pname);
}
else
{
int n1=posswin(~X~);
if(n1!=0)
{
if(n1==1)
{
arr[0][0]=5;
jb[0][0].setText("O");
}
if(n1==2)
{
arr[1][0]=5;
jb[1][0].setText("O");
}
if(n1==3)
{
arr[2][0]=5;
jb[2][0].setText("O");
}
if(n1==4)
{
arr[0][1]=5;
jb[0][1].setText("O");
}
if(n1==6)
{
arr[2][1]=5;
jb[2][1].setText("O");
}
if(n1==7)
{
arr[0][2]=5;
jb[0][2].setText("O");
}
if(n1==8)
{
arr[1][2]=5;
jb[1][2].setText("O");
}
if(n1==9)
{
arr[2][2]=5;
jb[2][2].setText("O");
}
}
else
{
int m=make2();
if(m==2)
{
arr[1][0]=5;
jb[1][0].setText("O");
}
if(m==4)
{
arr[0][1]=5;
jb[0][1].setText("O");
}
if(m==5)
{
arr[1][1]=5;
jb[1][1].setText("O");
}
if(m==6)
{
arr[2][1]=5;
jb[2][1].setText("O");
}
if(m==8)
{
arr[1][2]=5;
jb[1][2].setText("O");
}
if(m==0)
{
int count=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(count==0)
{
if(arr[i][j]==2)
{
arr[i][j]=5;
jb[i][j].setText("O");
count++;
}
}
}
}
}
}
}
}
if(turn==8)
{
int n=posswin(~O~);
if(n!=0)
{
if(n==1)
{
arr[0][0]=5;
jb[0][0].setText("O");
}
if(n==2)
{
arr[1][0]=5;
jb[1][0].setText("O");
}
if(n==3)
{
arr[2][0]=5;
jb[2][0].setText("O");
}
if(n==4)
{
arr[0][1]=5;
jb[0][1].setText("O");
}
if(n==6)
{
arr[2][1]=5;
jb[2][1].setText("O");
}
if(n==7)
{
arr[0][2]=5;
jb[0][2].setText("O");
}
if(n==8)
{
arr[1][2]=5;
jb[1][2].setText("O");
}
if(n==9)
{
arr[2][2]=5;
jb[2][2].setText("O");
}
this.setVisible(false);
new win(~C~,Pname);
}
else
{
int n1=posswin(~X~);
if(n1!=0)
{
if(n1==1)
{
arr[0][0]=5;
jb[0][0].setText("O");
}
if(n1==2)
{
arr[1][0]=5;
jb[1][0].setText("O");
}
if(n1==3)
{
arr[2][0]=5;
jb[2][0].setText("O");
}
if(n1==4)
{
arr[0][1]=5;
jb[0][1].setText("O");
}
if(n1==6)
{
arr[2][1]=5;
jb[2][1].setText("O");
}
if(n1==7)
{
arr[0][2]=5;
jb[0][2].setText("O");
}
if(n1==8)
{
arr[1][2]=5;
jb[1][2].setText("O");
}
if(n1==9)
{
arr[2][2]=5;
jb[2][2].setText("O");
}
}
else
{
int cou=0;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
if(arr[i][j]==2)
{
if(cou<1)
{
arr[i][j]=5;
jb[i][j].setText("O");
cou++;
}
}
}
//new win(~D~,"Drawn");
}
}
}
turn++;
}
int posswin(char c)
{
if(c==~X~)
{
if(arr[0][0]*arr[1][1]*arr[2][2]==18)
{
if(arr[0][0]==2)
{
System.out.println(1);
return 1;
}
else
{
if(arr[1][1]==2)
{
System.out.println(5);
return 5;
}
else
{
System.out.println(9);
return 9;
}
}
}
else
{
if(arr[2][0]*arr[1][1]*arr[0][2]==18)
{
if(arr[2][0]==2)
{
System.out.println(3);
return 3;
}
else
{
if(arr[1][1]==2)
{
System.out.println(5);
return 5;
}
else
{
System.out.println(7);
return 7;
}
}
}
else
{
for(int i=0;i<3;i++)
{
if(arr[i][0]*arr[i][1]*arr[i][2]==18)
{
for(int j=0;j<3;j++)
{
if(arr[i][j]==2)
{
if(i==0)
{
if(j==0)
{
System.out.println(1);
return 1;
}
if(j==1)
{
System.out.println(4);
return 4;
}
if(j==2)
{
System.out.println(7);
return 7;
}
}
if(i==1)
{
if(j==0)
{
System.out.println(2);
return 2;
}
if(j==1)
{
System.out.println(5);
return 5;
}
if(j==2)
{
System.out.println(8);
return 8;
}
}
if(i==2)
{
if(j==0)
{
System.out.println(3);
return 3;
}
if(j==1)
{
System.out.println(6);
return 6;
}
if(j==2)
{
System.out.println(9);
return 9;
}
}
}
}
}
else
{
if(arr[0][i]*arr[1][i]*arr[2][i]==18)
{
for(int j=0;j<3;j++)
{
if(arr[j][i]==2)
{
if(i==0)
{
if(j==0)
{
System.out.println(1);
return 1;
}
if(j==1)
{
System.out.println(2);
return 2;
}
if(j==2)
{
System.out.println(3);
return 3;
}
}
if(i==1)
{
if(j==0)
{
System.out.println(4);
return 4;
}
if(j==1)
{
System.out.println(5);
return 5;
}
if(j==2)
{
System.out.println(6);
return 6;
}
} if(i==2)
if(i==2)
{
System.out.println("i==2");
if(j==0)
{
System.out.println(7);
return 7;
}
if(j==1)
{
System.out.println(8);
return 8;
}
if(j==2)
{
System.out.println("j==2");
System.out.println(9);
return 9;
}
}
}
}
}
/*else
{
System.out.println("1st"+0);
return 0;
}*/
}
}
}
System.out.println("2nd"+0);
return 0;
}
}
else
{
if(c==~O~)
{
if(arr[0][0]*arr[1][1]*arr[2][2]==50)
{
if(arr[0][0]==2)
{
System.out.println(1);
return 1;
}
else
{
if(arr[1][1]==2)
{
System.out.println(5);
return 5;
}
else
{
System.out.println(9);
return 9;
}
}
}
else
{
if(arr[2][0]*arr[1][1]*arr[0][2]==50)
{
if(arr[2][0]==2)
{
System.out.println(3);
return 3;
}
else
{
if(arr[1][1]==2)
{
System.out.println(5);
return 5;
}
else
{
System.out.println(7);
return 7;
}
}
}
else
{
for(int i=0;i<3;i++)
{
System.out.println("inside for");
if(arr[i][0]*arr[i][1]*arr[i][2]==50)
{
System.out.println("right");
for(int j=0;j<3;j++)
{
if(arr[i][j]==2)
{
System.out.println("akhane");
if(i==0)
{
if(j==0)
{
System.out.println(1);
return 1;
}
if(j==1)
{
System.out.println(4);
return 4;
}
if(j==2)
{
System.out.println(7);
return 7;
}
}
if(i==1)
{
System.out.println("i=1");
if(j==0)
{
System.out.println(2);
return 2;
}
if(j==1)
{
System.out.println(5);
return 5;
}
if(j==2)
{
System.out.println(8);
return 8;
}
}
if(i==2)
{
if(j==0)
{
System.out.println(3);
return 3;
}
if(j==1)
{
System.out.println(6);
return 6;
}
if(j==2)
{
System.out.println(9);
return 9;
}
}
}
}
}
else
{
if(arr[0][i]*arr[1][i]*arr[2][i]==50)
{
for(int j=0;j<3;j++)
{
if(arr[j][i]==2)
{
if(i==0)
{
if(j==0)
{
System.out.println(1);
return 1;
}
if(j==1)
{
System.out.println(2);
return 2;
}
if(j==2)
{
System.out.println(3);
return 3;
}
}
if(i==1)
{
if(j==0)
{
System.out.println(4);
return 4;
}
if(j==1)
{
System.out.println(5);
return 5;
}
if(j==2)
{
System.out.println(6);
return 6;
}
} if(i==2)
if(i==2)
{
if(j==0)
{
System.out.println(7);
return 7;
}
if(j==1)
{
System.out.println(8);
return 8;
}
if(j==2)
{
System.out.println(9);
return 9;
}
}
}
}
}
}
}
System.out.println("4yh"+0);
return 0;
}
}
}
else
{
System.out.println("5th"+0);
return 0;
}
}
}
int make2()
{
if(arr[1][1]==2)
{
return 5;
}
else
{
if(arr[1][0]==2)
{
return 2;
}
else
{
if(arr[0][1]==2)
{
return 4;
}
else
{
if(arr[2][1]==2)
{
return 6;
}
else
{
if(arr[1][2]==2)
{
return 8;
}
else
{
return 0;
}
}
}
}
}
}
}
class win extends JFrame implements ActionListener
{
String s="Match Drawn";
JMenuBar jmb;
JMenu jm1,jm3;
JMenuItem jmi1,jmi2,jmi4;
JLabel jl;
win(char c,String Pname)
{
//System.out.println(Pname);
if(c==~C~)
{
s="~"+Pname+"~"+" "+"Better Luck Next Time";
}
if(c==~P~)
{
s="~"+Pname+"~"+" "+"Have Won The Game";
}
if(c==~D~)
{
s="Match Drawn";
}
this.setTitle("TicTacToe");
jmb=new JMenuBar();
jm1=new JMenu("File");
jmi1=new JMenuItem("New");
jmi2=new JMenuItem("Exit");
jm1.add(jmi1);
jm1.addSeparator();
jm1.add(jmi2);
jmi1.addActionListener(this);
jmi2.addActionListener(this);
jm3=new JMenu("Player");
jmi4=new JMenuItem("Choose Player");
jm3.add(jmi4);
jmi4.addActionListener(this);
jmb.add(jm1);
jmb.add(jm3);
setJMenuBar(jmb);
jl=new JLabel(s);
jl.setBounds(200,230,20,200);
this.add(jl);
this.setSize(400,300);
this.setLocation(120,90);
this.setResizable(false);
this.setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
JMenuItem jmi=(JMenuItem)e.getSource();
if(jmi==jmi1)
{
UserInterface uf=new UserInterface();
uf.setSize(400,300);
uf.setLocation(120,90);
uf.setResizable(false);
uf.setVisible(true);
}
if(jmi==jmi2)
{
System.exit(0);
}
if(jmi==jmi4)
{
boolean flag=true;
String Pname=JOptionPane.showInputDialog("Enter Your Name..... ");
String Po=JOptionPane.showInputDialog("If u want to play as Leading player type ~1~ else type ~2~");
Pname=Pname.trim();
int p=Integer.parseInt(Po.trim());
this.setVisible(false);
Board b=new Board(Pname,p);
b.setSize(400,300);
b.setLocation(120,90);
b.setResizable(false);
b.setLayout(null);
b.setVisible(true);
}
}
}
class Final extends JFrame implements ActionListener
{
JButton jb[][]=new JButton[3][3];
Final(Board b)
{
this.setTitle("TicTacToe");
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
if(b.arr[i][j]==3)
this.jb[i][j]=new JButton("X");
if(b.arr[i][j]==5)
this.jb[i][j]=new JButton("O");
}
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
this.jb[i][j].setBounds(0+i*130,0+j*80,130,80);
this.add(jb[i][j]);
this.jb[i][j].addActionListener(this);
}
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
JComponent jc=(JComponent)e.getSource();
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
{
if(jc==jb[i][j])
{
this.setVisible(false);
}
}
}