Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
218 changes: 218 additions & 0 deletions tic-tac-toe/tictactoe.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class TTT1 extends JFrame implements ItemListener, ActionListener{
int i,j,ii,jj,x,y,yesnull;
int a[][]={{10,1,2,3,11},{10,1,4,7,11},{10,1,5,9,11},{10,2,5,8,11},
{10,3,5,7,11},{10,3,6,9,11},{10,4,5,6,11},
{10,7,8,9,11} };
int a1[][]={{10,1,2,3,11},{10,1,4,7,11},{10,1,5,9,11},{10,2,5,8,11},
{10,3,5,7,11},{10,3,6,9,11},{10,4,5,6,11},{10,7,8,9,11} };

boolean state,type,set;

Icon ic1,ic2,icon,ic11,ic22;
Checkbox c1,c2;
JLabel l1,l2;
JButton b[]=new JButton[9];
JButton reset;

public void showButton(){

x=10; y=10;j=0;
for(i=0;i<=8;i++,x+=100,j++){
b[i]=new JButton();
if(j==3)
{j=0; y+=100; x=10;}
b[i].setBounds(x,y,100,100);
add(b[i]);
b[i].addActionListener(this);
}//eof for

reset=new JButton("RESET");
reset.setBounds(100,350,100,50);
add(reset);
reset.addActionListener(this);

}//eof showButton

/*********************************************************/
public void check(int num1){
for(ii=0;ii<=7;ii++){
for(jj=1;jj<=3;jj++){
if(a[ii][jj]==num1){ a[ii][4]=11; }

}//eof for jj

}//eof for ii
}//eof check
/**********************************************************/

/*********************************************************/

public void complogic(int num){

for(i=0;i<=7;i++){
for(j=1;j<=3;j++){
if(a[i][j]==num){ a[i][0]=11; a[i][4]=10; }
}
}
for(i=0;i<=7;i++){ // for 1
set=true;
if(a[i][4]==10){ //if 1
int count=0;
for(j=1;j<=3;j++){ //for 2
if(b[(a[i][j]-1)].getIcon()!=null){ //if 2
count++;
} //eof if 2
else{ yesnull=a[i][j]; }
} //eof for 2
if(count==2){ //if 2
b[yesnull-1].setIcon(ic2);
this.check(yesnull); set=false;break;
} //eof if 2
} //eof if 1
else
if(a[i][0]==10){
for(j=1;j<=3;j++){ //for2
if(b[(a[i][j]-1)].getIcon()==null){ //if 1
b[(a[i][j]-1)].setIcon(ic2);
this.check(a[i][j]);
set=false;
break;
} //eof if1
} //eof for 2
if(set==false)
break;
}//eof elseif

if(set==false)
break;
}//eof for 1


}//eof complogic


/*********************************************************/

TTT1(){
super("tic tac toe by ashwani");

CheckboxGroup cbg=new CheckboxGroup();
c1=new Checkbox("vs computer",cbg,false);
c2=new Checkbox("vs friend",cbg,false);
c1.setBounds(120,80,100,40);
c2.setBounds(120,150,100,40);
add(c1); add(c2);
c1.addItemListener(this);
c2.addItemListener(this);


state=true;type=true;set=true;
ic1=new ImageIcon("ic1.jpg");
ic2=new ImageIcon("ic2.jpg");
ic11=new ImageIcon("ic11.jpg");
ic22=new ImageIcon("ic22.jpg");

setLayout(null);
setSize(330,450);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}//eof constructor

/*************************************************************/
public void itemStateChanged(ItemEvent e){
if(c1.getState())
{
type=false;
}

else if(c2.getState())
{ type=true;
}
remove(c1);remove(c2);
repaint(0,0,330,450);
showButton();
}//eof itemstate
/************************************************************/

public void actionPerformed(ActionEvent e){
/********************************/
if(type==true)//logicfriend
{
if(e.getSource()==reset){
for(i=0;i<=8;i++){
b[i].setIcon(null);
}//eof for
}
else{
for(i=0;i<=8;i++){
if(e.getSource()==b[i]){

if(b[i].getIcon()==null){
if(state==true){ icon=ic2;
state=false;} else{ icon=ic1; state=true; }
b[i].setIcon(icon);
}
}
}//eof for
}//eof else
}//eof logicfriend
else if(type==false){ // complogic
if(e.getSource()==reset){
for(i=0;i<=8;i++){
b[i].setIcon(null);
}//eof for
for(i=0;i<=7;i++)
for(j=0;j<=4;j++)
a[i][j]=a1[i][j]; //again initialsing array
}
else{ //complogic
for(i=0;i<=8;i++){
if(e.getSource()==b[i]){
if(b[i].getIcon()==null){
b[i].setIcon(ic1);
if(b[4].getIcon()==null){
b[4].setIcon(ic2);
this.check(5);
} else{
this.complogic(i);
}
}
}
}//eof for
}
}//eof complogic

for(i=0;i<=7;i++){

Icon icon1=b[(a[i][1]-1)].getIcon();
Icon icon2=b[(a[i][2]-1)].getIcon();
Icon icon3=b[(a[i][3]-1)].getIcon();
if((icon1==icon2)&&(icon2==icon3)&&(icon1!=null)){
if(icon1==ic1){
b[(a[i][1]-1)].setIcon(ic11);
b[(a[i][2]-1)].setIcon(ic11);
b[(a[i][3]-1)].setIcon(ic11);
JOptionPane.showMessageDialog(TTT1.this,"!!!YOU won!!! click reset");
break;
}
else if(icon1==ic2){
b[(a[i][1]-1)].setIcon(ic22);
b[(a[i][2]-1)].setIcon(ic22);
b[(a[i][3]-1)].setIcon(ic22);
JOptionPane.showMessageDialog(TTT1.this,"won! click reset");
break;
}
}
}


}//eof actionperformed
/************************************************************/

public static void main(String []args){
new TTT1();
}//eof main
}//eof class