diff --git a/tic-tac-toe/tictactoe.java b/tic-tac-toe/tictactoe.java new file mode 100644 index 0000000..570cac2 --- /dev/null +++ b/tic-tac-toe/tictactoe.java @@ -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