HW7 Tic Tac Toe CSS 161 Fundamentals of Computing By Hansel

HW7: Tic Tac Toe CSS 161 Fundamentals of Computing By: Hansel Ong Summary For this last homework of CSS 161, let\'s work on something other than paystubs. Let\'s work on Tic Tac Toe. You will not have to implement the full game functionality, but you need to create a \"TicTacToeBoard\" object that implements some basic logic. Estimated Work Needed This assignment is challenging and requires a lot of thinking/problem solving. Start early and complete this work early so you can focus on studying for the final exam. Skills Expected All the skills from previous Assignment (s) Multi-Dimensional Array Equals and toString overrides Try/Catch Exceptions Switch Statements Assignment Description You are expected to create at least one class representing a Tic Tac Toe board and its corresponding Driver class. However, you are welcome to create additional class objects as you d like. Notes: All properties MUST be private Getters and Setters must be implemented as appropriate Class Design: Tic Tac Toe Board Required Properties: A 3x3 matrix (2D array) where each element contains either an \"O\" or an \"X\" A count of the number of moves executed so far Required Methods A method (or set of methods) that allows user to change an element that is not yet an \"o\" or an \"X\" into either an \"O\" or an \"X\" o f the last move was an \"O\" only allow \"X\" to be placed (and vice versa o Don\'t allow anything other than \"O\" and \"X\" to be placed o Don\'t \"overwrite\" (replace) an existing \"O\" or \"X\" o Game \"ends\" either when user wins (see \"Optional Challenge or when all elements have been filled with either \"O\" or \"X\"

Solution

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
 HW7: Tic Tac Toe CSS 161 Fundamentals of Computing By: Hansel Ong Summary For this last homework of CSS 161, let\'s work on something other than paystubs. Let\
 HW7: Tic Tac Toe CSS 161 Fundamentals of Computing By: Hansel Ong Summary For this last homework of CSS 161, let\'s work on something other than paystubs. Let\

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site