

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;


public class mainApplet extends java.applet.Applet {

	final static int NUMBOX = 9;
    final static int TAMBOX = 50;
    final static int TAMCONTROLS = 100;
    final static int TAMHIGHPANEL = TAMBOX * NUMBOX +10;
    final static int TAMPANEL = TAMHIGHPANEL + TAMCONTROLS;
    final static int ROW = 0;
    final static int COL = 1;
    final static int SQR = 2;
    
	public mainApplet (){
		
	}
	public void init(){
		
       
	}
	public void start(){
        JPanel panel = new JPanel();
        JPanel controls = new JPanel();
        setLayout(new BorderLayout());
        controls.setLayout(new GridLayout(2,1));
        final slot[][] board = new slot[NUMBOX][NUMBOX];
        final JButton[][] boxes = new JButton[NUMBOX][NUMBOX];
        final JButton []controlButtons = new JButton[2];
        final JButton newGame = new JButton("New Game");
        final JButton resetGame = new JButton("Reset Game");
        boolean[][][] errorBoard = new boolean[NUMBOX][NUMBOX][3]; //board to take note about how many errors have each box
        controls.setMaximumSize(new Dimension(TAMCONTROLS, TAMHIGHPANEL));

        //New Game
        newGame.setSize(30, 20);
        newGame.addMouseListener(new listenerNewGame(boxes,board,errorBoard));
        //controls.add(newGame);
        controlButtons[0]=newGame;
        //reset game
        resetGame.setSize(30,20);
        resetGame.addMouseListener(new listenerResetGame(boxes,board,errorBoard));
        controlButtons[1]=resetGame;

        controls.add(controlButtons[0]);
        controls.add(controlButtons[1]);
        
        panel.setMaximumSize(new Dimension(TAMCONTROLS, TAMHIGHPANEL));
        panel.setLayout(new GridLayout(9, 9));

        for (int i = 0; i < NUMBOX; i++) {
            for (int j = 0; j < NUMBOX; j++) {
                board[i][j] = new slot();
                boxes[i][j] = new JButton("X");
                if(((i<3)&&(j<3))||(i>5)&&(j<3)||((i<3)&&(j>5))||((i>5)&&(j>5))
                        ||(((i>2)&&(i<6))&&((j>2)&&(j<6))) )
                    boxes[i][j].setBackground(Color.CYAN);
                else
                    boxes[i][j].setBackground(Color.BLUE);
                boxes[i][j].setMaximumSize(new Dimension(TAMBOX, TAMBOX));
                boxes[i][j].setPreferredSize(new Dimension(TAMBOX, TAMBOX));
                boxes[i][j].addMouseListener(new listenerButtonXY(i, j, board, boxes, errorBoard));

                panel.add(boxes[i][j]);
            }
        }
        add(panel, BorderLayout.WEST);
        add(controls, BorderLayout.EAST);

        initErrorBoard(errorBoard);
	}
	public void stop(){
		
	}
	public void destroy(){
		
	}
	static void initErrorBoard(boolean[][][] errorBoard) {
        for (int x = 0; x < 9; x++) {
            for (int y = 0; y < 9; y++) {
                errorBoard[x][y][ROW] = false;
                errorBoard[x][y][COL] = false;
                errorBoard[x][y][SQR] = false;
            }
        }
    }
}

