package aigame;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.util.*;
import java.lang.String;
import java.lang.Object;
import java.math.*;
import java.io.*;
import java.util.Random;
//import com.borland.dbswing.*;
import java.util.StringTokenizer;
import java.io.DataInputStream;



public class gameApplet extends JApplet implements ActionListener, ItemListener {
  JPanel main = new JPanel();
  JPanel controlMain = new JPanel();
  JPanel gameMainArea = new JPanel();
  JPanel gameMainR0 = new JPanel();
  JPanel gameMainR1 = new JPanel();
  JPanel gameMainR2 = new JPanel();
  JPanel gameMainR3 = new JPanel();
  JPanel centerMainText = new JPanel();
  JPanel menu = new JPanel();
  JPanel topMenu = new JPanel();
  JPanel midMenu = new JPanel();
  JPanel midMenu2 = new JPanel();
  JPanel radioMenu = new JPanel();
  JPanel buttonMenu = new JPanel();
  JPanel buff = new JPanel();
  JPanel header1 = new JPanel();
  JPanel buff2 = new JPanel();
  JPanel radioMenu2 = new JPanel();
  JPanel header2 = new JPanel();
  JButton mainButtonMenu = new JButton("Main Menu");
  JButton mainButtonTurn = new JButton("Finish Turn");
  JButton mainButtonRules = new JButton("Rules");
  JButton menuButtonRules = new JButton("Rules");
  JButton menuButtonNew = new JButton("New Game");
  JButton[] rowArr1 = new JButton[7];
  JButton[] rowArr2 = new JButton[7];
  JButton[] rowArr3 = new JButton[7];
  JButton[] rowArr4 = new JButton[7];
  JLabel mainLabelHeader = new JLabel("Challenge your mind.");
  JLabel menuLabelHeader = new JLabel("Warning: This game is extremely addictive.");
  JRadioButton menuEasy = new JRadioButton("Please don't hurt me");
  JRadioButton menuMedium = new JRadioButton("Bring the noise");
  JRadioButton menuHard = new JRadioButton("Super Computer");
  JRadioButton menuSing = new JRadioButton("Challenge the Machine in three skill levels");
  JRadioButton menuTourn = new JRadioButton("Play the \"Smart\" computer in a three game tournament");
  JRadioButton kSystem0 = new JRadioButton("IQ: 500");
  JRadioButton kSystem1 = new JRadioButton("IQ: 600");
  JRadioButton kSystem2 = new JRadioButton("IQ: 700");
  JRadioButton kSystem3 = new JRadioButton("IQ: 800");
  JRadioButton kSystem4 = new JRadioButton("IQ: 900");
  ButtonGroup playerGroup = new ButtonGroup();
  ButtonGroup modeGroup = new ButtonGroup();
  ButtonGroup kplayerGroup = new ButtonGroup();

  CardLayout cards;      // the layout manager for the center panel
  JPanel cardPanel;

  pearl Mypearl = new pearl();
  kernEval Mykern = new kernEval();
//  private FontChooser fontDecider = new FontChooser();

  //Initialize the applet
  public void init() {
/*
  try {
    UIManager.LookAndFeelInfo laf[] = UIManager.getInstalledLookAndFeels();
    JList lafList = new JList(laf);
    JOptionPane.showMessageDialog(null,lafList,"Pick your look and feel",0);

    UIManager.setLookAndFeel(((UIManager.LookAndFeelInfo) lafList.getSelectedValue()).getClassName());
    //UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");

    }
    catch( Exception e ) {

  }
*/
  getContentPane().setSize(400, 300);

  cardPanel = new JPanel();               // Set up the center panel
  cardPanel.setBackground(Color.white);
  cards = new CardLayout();
  cardPanel.setLayout(cards);
//  fontDecider.setFrame(new Frame());
//  fontDecider.show();
//layout for menu panel
  menu.setLayout(new BorderLayout());
  menu.add(menuLabelHeader, BorderLayout.NORTH);
  menu.setBackground(Color.black);
  menuLabelHeader.setForeground(Color.yellow);
  menuLabelHeader.setFont(new Font("Viner Hand ITC", Font.PLAIN, 14));
  mainLabelHeader.setFont(new Font("Ravie", Font.PLAIN, 14));

  midMenu.setLayout(new GridLayout(2, 0, 5, 5));
  midMenu.setBackground(Color.black);
  menuSing.setFont(new Font("Poor Richard", Font.CENTER_BASELINE, 14));
  header1.add(menuSing);
  buff.setBackground(Color.white);
  buff.add(header1);
  header1.setBorder(BorderFactory.createRaisedBevelBorder());
  buff.setBorder(BorderFactory.createMatteBorder(4, 2, 4, 2,Color.blue));
  //radioMenu.setBorder(BorderFactory.createRaisedBevelBorder());
  radioMenu.setBackground(Color.white);
  menuMedium.setBackground(Color.white);
  menuMedium.setFont(new Font("High Tower Text", Font.PLAIN, 14));
  menuHard.setBackground(Color.white);
  menuHard.setFont(new Font("High Tower Text", Font.PLAIN, 14));
  menuEasy.setBackground(Color.white);
  menuEasy.setFont(new Font("High Tower Text", Font.PLAIN, 14));
  radioMenu.add(menuEasy);
  radioMenu.add(menuMedium);
  radioMenu.add(menuHard);
  buff.add(radioMenu);
  midMenu.add(buff);
  modeGroup.add(menuEasy);
  modeGroup.add(menuMedium);
  modeGroup.add(menuHard);
  buff2.setBackground(Color.white);
  buff2.setBorder(BorderFactory.createMatteBorder(4, 2, 4, 2,Color.blue));
  header2.setBorder(BorderFactory.createRaisedBevelBorder());
  menuTourn.setFont(new Font("Poor Richard", Font.CENTER_BASELINE, 14));
  header2.add(menuTourn);
  buff2.add(header2);
  kSystem0.setBackground(Color.white);
  kSystem0.setFont(new Font("High Tower Text", Font.PLAIN, 14));
  kSystem1.setBackground(Color.white);
  kSystem1.setFont(new Font("High Tower Text", Font.PLAIN, 14));
  kSystem2.setBackground(Color.white);
  kSystem2.setFont(new Font("High Tower Text", Font.PLAIN, 14));
  kSystem3.setBackground(Color.white);
  kSystem3.setFont(new Font("High Tower Text", Font.PLAIN, 14));
  kSystem4.setBackground(Color.white);
  kSystem4.setFont(new Font("High Tower Text", Font.PLAIN, 14));
  radioMenu2.setBackground(Color.white);
  radioMenu2.add(kSystem0);
  radioMenu2.add(kSystem1);
  radioMenu2.add(kSystem2);
  radioMenu2.add(kSystem3);
  radioMenu2.add(kSystem4);
  buff2.add(radioMenu2);
  midMenu.add(buff2);
  buttonMenu.setBackground(Color.black);
  menuButtonNew.setFont(new Font("Poor Richard", Font.CENTER_BASELINE, 14));
  menuButtonRules.setFont(new Font("Poor Richard", Font.CENTER_BASELINE, 14));
  buttonMenu.add(menuButtonNew);
  buttonMenu.add(menuButtonRules);
  playerGroup.add(menuSing);
  playerGroup.add(menuTourn);
  menu.add(midMenu, BorderLayout.CENTER);
  menu.add(buttonMenu, BorderLayout.SOUTH);
  cardPanel.add("Menu", menu);

  kplayerGroup.add(kSystem0);
  kplayerGroup.add(kSystem1);
  kplayerGroup.add(kSystem2);
  kplayerGroup.add(kSystem3);
  kplayerGroup.add(kSystem4);



  //layout for main panel
  main.setLayout(new BorderLayout());
  centerMainText.setLayout(new BorderLayout());
  centerMainText.setBackground(Color.white);
  gameMainArea.setLayout(new GridLayout(1, 0, 3, 3));
  gameMainArea.setBackground(Color.yellow);
  gameMainR0.setLayout(new GridLayout(7, 1, 3, 3));
  gameMainR1.setLayout(new GridLayout(7, 1, 3, 3));
  gameMainR2.setLayout(new GridLayout(7, 1, 3, 3));
  gameMainR3.setLayout(new GridLayout(7, 1, 3, 3));
  gameMainR0.setBackground(Color.blue);
  gameMainR1.setBackground(Color.blue);
  gameMainR2.setBackground(Color.blue);
  gameMainR3.setBackground(Color.blue);
  gameMainArea.add(gameMainR0);
  gameMainArea.add(gameMainR1);
  gameMainArea.add(gameMainR2);
  gameMainArea.add(gameMainR3);

  mainLabelHeader.setSize(40, 3);
  centerMainText.add(mainLabelHeader, BorderLayout.NORTH);
  mainButtonMenu.setFont(new Font("Poor Richard", Font.CENTER_BASELINE, 14));
  mainButtonTurn.setFont(new Font("Poor Richard", Font.CENTER_BASELINE, 14));
  mainButtonRules.setFont(new Font("Poor Richard", Font.CENTER_BASELINE, 14));
  controlMain.add(mainButtonMenu);
  controlMain.add(mainButtonTurn);
  controlMain.add(mainButtonRules);
  centerMainText.add(controlMain, BorderLayout.CENTER);//control panel done
  main.add(centerMainText, BorderLayout.NORTH);
  main.add(gameMainArea, BorderLayout.CENTER);
  cardPanel.add("Main", main);

  this.getContentPane().add(cardPanel);
  for (int c = 0; c < 7; c++)
  {
    rowArr1[c] = new JButton(new ImageIcon("C:/Documents and Settings/Nate/jbproject/aiGame/src/aigame/mineicon2.gif"));
    rowArr1[c].setFocusPainted(false);
    rowArr1[c].setContentAreaFilled(false);
    rowArr1[c].setBorderPainted(false);
    rowArr1[c].addActionListener(this);
    rowArr1[c].setVisible(false);
    gameMainR0.add(rowArr1[c]);
  }

  for (int d = 0; d < 7; d++)
  {
    rowArr2[d] = new JButton(new ImageIcon("C:/Documents and Settings/Nate/jbproject/aiGame/src/aigame/mineicon.gif"));
    rowArr2[d].setFocusPainted(false);
    rowArr2[d].setContentAreaFilled(false);
    rowArr2[d].setBorderPainted(false);
    rowArr2[d].addActionListener(this);
    rowArr2[d].setVisible(false);
    gameMainR1.add(rowArr2[d]);
  }

  for (int e = 0; e < 7; e++)
  {
    rowArr3[e] = new JButton(new ImageIcon("C:/Documents and Settings/Nate/jbproject/aiGame/src/aigame/mineicon2.gif"));
    rowArr3[e].setFocusPainted(false);
    rowArr3[e].setContentAreaFilled(false);
    rowArr3[e].setBorderPainted(false);
    rowArr3[e].addActionListener(this);
    rowArr3[e].setVisible(false);
    gameMainR2.add(rowArr3[e]);
  }

  for (int f = 0; f < 7; f++)
  {
    rowArr4[f] = new JButton(new ImageIcon("C:/Documents and Settings/Nate/jbproject/aiGame/src/aigame/mineicon.gif"));
    rowArr4[f].setFocusPainted(false);
    rowArr4[f].setContentAreaFilled(false);
    rowArr4[f].setBorderPainted(false);
    rowArr4[f].addActionListener(this);
    rowArr4[f].setVisible(false);
    gameMainR3.add(rowArr4[f]);
  }

  menuEasy.setEnabled(false);
  menuMedium.setEnabled(false);
  menuHard.setEnabled(false);
  kSystem0.setEnabled(false);
  kSystem1.setEnabled(false);
  kSystem2.setEnabled(false);
  kSystem3.setEnabled(false);
  kSystem4.setEnabled(false);

  menuTourn.addItemListener(this);
  menuSing.addItemListener(this);
  menuHard.addItemListener(this);
  menuMedium.addItemListener(this);
  menuEasy.addItemListener(this);
  mainButtonTurn.addActionListener(this);
  mainButtonRules.addActionListener(this);
  mainButtonMenu.addActionListener(this);
  menuButtonNew.addActionListener(this);
  menuButtonRules.addActionListener(this);

  }//end init
  public void itemStateChanged(ItemEvent ie)
  {
    JRadioButton rbutt = (JRadioButton)ie.getSource();

    if(menuSing.isSelected())
    {
      menuEasy.setEnabled(true);
      menuMedium.setEnabled(true);
      menuHard.setEnabled(true);
      kSystem0.setEnabled(false);
      kSystem1.setEnabled(false);
      kSystem2.setEnabled(false);
      kSystem3.setEnabled(false);
      kSystem4.setEnabled(false);
    }//end if

    if(menuTourn.isSelected())
    {
      menuEasy.setEnabled(false);
      menuMedium.setEnabled(false);
      menuHard.setEnabled(false);
      kSystem0.setEnabled(true);
      kSystem1.setEnabled(true);
      kSystem2.setEnabled(true);
      kSystem3.setEnabled(true);
      kSystem4.setEnabled(true);
    }
  }//end itemStateChanged

  public void actionPerformed(ActionEvent e)  {

  JButton butt = (JButton)e.getSource();
  int selected = 0, yplane = 0, row0 = 0, row1 = 0, row2 = 0, row3 = 0;
  int easyFlag = 0, mediumFlag = 0, hardFlag = 0, diffMode = 0;
  int[] retArr = {0, 0, 0, 0};



  if(butt == mainButtonRules)
  {
    JOptionPane.showMessageDialog(null, "How to Play:\n *** Players take turns selecting from"
    + " the objects on the game board.\n *** A player may choose as many objects as desired,"
    + " but may only pick from a single row.\n *** The player who selects the last object wins the"
    + " game.\n" );
  }
  else if(butt == mainButtonTurn)
  {
    //end player turn
    retArr[0] = Mypearl.rowSize(0);
    retArr[1] = Mypearl.rowSize(1);
    retArr[2] = Mypearl.rowSize(2);
    retArr[3] = Mypearl.rowSize(3);
    if(menuSing.isSelected())
    {
      if(menuEasy.isSelected())
        diffMode = 1;
      else if(menuMedium.isSelected())
        diffMode = 2;
      else if(menuHard.isSelected())
        diffMode = 3;
    }
    if(menuTourn.isSelected())
    {
      if(kSystem0.isSelected())
        diffMode = 4;
      else if(kSystem1.isSelected())
        diffMode = 5;
      else if(kSystem2.isSelected())
        diffMode = 6;
      else if(kSystem3.isSelected())
        diffMode = 7;
      else if(kSystem4.isSelected())
        diffMode = 8;
    }
    if((retArr[0] == 0) && (retArr[1] == 0) && (retArr[2] == 0) && (retArr[3] == 0))
    {
      if(diffMode == 1)
      {
      JOptionPane.showMessageDialog(null, "Your the WINNER!!!\n Don't pat yourself on the back just yet," +
       "\nWhy don't you try Meduim difficulty.");
      }
      if(diffMode == 2)
      {
      JOptionPane.showMessageDialog(null, "Your the WINNER!!!\n Not bad, I see you have been practicing," +
       "\nChallenge the Hard difficulty and test your skill.");
      }
      if(diffMode == 3)
      {
      JOptionPane.showMessageDialog(null, "Your the WINNER!!!\n Not only are you the winner, your a NIM Master!," +
       "\nYou have truely attained perfection.");
      }
      if((diffMode >= 4) && (diffMode <= 8))
      {
        JOptionPane.showMessageDialog(null, "Your the WINNER!!!\n You out smarted the computer," +
       "\nIf you think your smart, try a harder difficulty.");
      }
    }//end if
    else
    {
//JOptionPane.showMessageDialog(null, "Columns: " + retArr[0] + retArr[1] + retArr[2] + retArr[3]);
    retArr = Mykern.kernRet(retArr, diffMode);
//JOptionPane.showMessageDialog(null, "Columns: " + retArr[0] + retArr[1] + retArr[2] + retArr[3]);
    row0 = retArr[0];
    row1 = retArr[1];
    row2 = retArr[2];
    row3 = retArr[3];
    Mypearl.refill(row0, row1, row2, row3);
    row0 = Mypearl.rowSize(0);
    row1 = Mypearl.rowSize(1);
    row2 = Mypearl.rowSize(2);
    row3 = Mypearl.rowSize(3);

    for(int j = 0; j < 7; j++)
    {
      rowArr1[j].setVisible(false);
    }
    for(int j = 0; j < row0; j++)
    {
       rowArr1[j].setVisible(true);
    }
    for(int k = 0; k < 7; k++)
    {
      rowArr2[k].setVisible(false);
    }
    for(int k = 0; k < row1; k++)
    {
      rowArr2[k].setVisible(true);
    }
    for(int m = 0; m < 7; m++)
    {
      rowArr3[m].setVisible(false);
    }
    for(int m = 0; m < row2; m++)
    {
      rowArr3[m].setVisible(true);
    }
    for(int n = 0; n < 7; n++)
    {
      rowArr4[n].setVisible(false);
    }
    for(int n = 0; n < row3; n++)
    {
      rowArr4[n].setVisible(true);
    }

    for(int h = 0; h < 7; h++)
    {
    rowArr1[h].setEnabled(true);
    rowArr2[h].setEnabled(true);
    rowArr3[h].setEnabled(true);
    rowArr4[h].setEnabled(true);
    }
    if((retArr[0] == 0) && (retArr[1] == 0) && (retArr[2] == 0) && (retArr[3] == 0))
    {

      JOptionPane.showMessageDialog(null, "You lose!\nBut you put up a good fight.\nTry it again, but this time don't make so many bad moves.");
    }
    }//end else
  }//end else if
  else if(butt == mainButtonMenu)
  {
    //return to the Menu panel
    cards.show(cardPanel, "Menu");
  }
  else if(butt.equals(menuButtonNew))
  {
    //show main panel - const class obj
    cards.show(cardPanel, "Main");
    //if(menuSing.isSelected())
    //{
      for(int h = 0; h < 7; h++)
      {
        rowArr1[h].setVisible(false);
        rowArr1[h].setEnabled(true);
        rowArr2[h].setVisible(false);
        rowArr2[h].setEnabled(true);
        rowArr3[h].setVisible(false);
        rowArr3[h].setEnabled(true);
        rowArr4[h].setVisible(false);
        rowArr4[h].setEnabled(true);
      }
      Mypearl.fillmat();
      row0 = Mypearl.rowSize(0);
      row1 = Mypearl.rowSize(1);
      row2 = Mypearl.rowSize(2);
      row3 = Mypearl.rowSize(3);
      for(int j = 0; j < row0; j++)
      {
        rowArr1[j].setVisible(true);
      }
      for(int k = 0; k < row1; k++)
      {
        rowArr2[k].setVisible(true);
      }
      for(int m = 0; m < row2; m++)
      {
        rowArr3[m].setVisible(true);
      }
      for(int n = 0; n < row3; n++)
      {
        rowArr4[n].setVisible(true);
      }
    //}//end if
  }//end else if
  if(butt == rowArr1[0])
  {
    rowArr1[0].setVisible(false);
    Mypearl.removeSelect(0, 1);
    row0--;
    for(int q = 0; q < 7; q++)
    {
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr1[1])
  {
    rowArr1[1].setVisible(false);
    Mypearl.removeSelect(0, 1);
    row0--;
    for(int q = 0; q < 7; q++)
    {
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr1[2])
  {
    rowArr1[2].setVisible(false);
    Mypearl.removeSelect(0, 1);
    row0--;
    for(int q = 0; q < 7; q++)
    {
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr1[3])
  {
    rowArr1[3].setVisible(false);
    Mypearl.removeSelect(0, 1);
    row0--;
    for(int q = 0; q < 7; q++)
    {
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr1[4])
  {
    rowArr1[4].setVisible(false);
    Mypearl.removeSelect(0, 1);
    row0--;
    for(int q = 0; q < 7; q++)
    {
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr1[5])
  {
    rowArr1[5].setVisible(false);
    Mypearl.removeSelect(0, 1);
    row0--;
    for(int q = 0; q < 7; q++)
    {
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr1[6])
  {
    rowArr1[6].setVisible(false);
    Mypearl.removeSelect(0, 1);
    row0--;
    for(int q = 0; q < 7; q++)
    {
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
/*********************************/
  if(butt == rowArr2[0])
  {
    rowArr2[0].setVisible(false);
    Mypearl.removeSelect(1, 1);
    row1--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr2[1])
  {
    rowArr2[1].setVisible(false);
    Mypearl.removeSelect(1, 1);
    row1--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr2[2])
  {
    rowArr2[2].setVisible(false);
    Mypearl.removeSelect(1, 1);
    row1--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr2[3])
  {
    rowArr2[3].setVisible(false);
    Mypearl.removeSelect(1, 1);
    row1--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr2[4])
  {
    rowArr2[4].setVisible(false);
    Mypearl.removeSelect(1, 1);
    row1--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr2[5])
  {
    rowArr2[5].setVisible(false);
    Mypearl.removeSelect(1, 1);
    row1--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr2[6])
  {
    rowArr2[6].setVisible(false);
    Mypearl.removeSelect(1, 1);
    row1--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
/**********************************/
  if(butt == rowArr3[0])
  {
    rowArr3[0].setVisible(false);
    Mypearl.removeSelect(2, 1);
    row2--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr3[1])
    {
    rowArr3[1].setVisible(false);
    Mypearl.removeSelect(2, 1);
    row2--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
    }
  if(butt == rowArr3[2])
    {
    rowArr3[2].setVisible(false);
    Mypearl.removeSelect(2, 1);
    row2--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
    }
  if(butt == rowArr3[3])
    {
    rowArr3[3].setVisible(false);
    Mypearl.removeSelect(2, 1);
    row2--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
    }
  if(butt == rowArr3[4])
  {
    rowArr3[4].setVisible(false);
    Mypearl.removeSelect(2, 1);
    row2--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr3[5])
  {
    rowArr3[5].setVisible(false);
    Mypearl.removeSelect(2, 1);
    row2--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
  if(butt == rowArr3[6])
  {
    rowArr3[6].setVisible(false);
    Mypearl.removeSelect(2, 1);
    row2--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr4[q].setEnabled(false);
    }
  }
/**********************************/
  if(butt == rowArr4[0])
   {
   rowArr4[0].setVisible(false);
   Mypearl.removeSelect(3, 1);
   row3--;
   for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
    }
   }
  if(butt == rowArr4[1])
  {
    rowArr4[1].setVisible(false);
    Mypearl.removeSelect(3, 1);
    row3--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
    }
  }
  if(butt == rowArr4[2])
  {
    rowArr4[2].setVisible(false);
    Mypearl.removeSelect(3, 1);
    row3--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
    }
  }
  if(butt == rowArr4[3])
  {
    rowArr4[3].setVisible(false);
    Mypearl.removeSelect(3, 1);
    row3--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
    }
  }
  if(butt == rowArr4[4])
  {
    rowArr4[4].setVisible(false);
    Mypearl.removeSelect(3, 1);
    row3--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
    }
  }
  if(butt == rowArr4[5])
  {
    rowArr4[5].setVisible(false);
    Mypearl.removeSelect(3, 1);
    row3--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
    }
  }
  if(butt == rowArr4[6])
  {
    rowArr4[6].setVisible(false);
    Mypearl.removeSelect(3, 1);
    row3--;
    for(int q = 0; q < 7; q++)
    {
      rowArr1[q].setEnabled(false);
      rowArr2[q].setEnabled(false);
      rowArr3[q].setEnabled(false);
    }
  }



  else if(butt == menuButtonRules)
  {
    JOptionPane.showMessageDialog(null, "How to Play:\n *** Players take turns selecting from"
    + " the objects on the game board.\n *** A player may choose as many objects as desired,"
    + " but may only pick from a single row.\n *** The player who selects the last object wins the"
    + " game.\n" );
  }


  }///end actionPreformed


}//end gameApplet

