import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;

public class Game extends JApplet implements ActionListener
{
	private BoardPanel boardPanel;
	private BrickButton brickButton[];
	private Board gameBoard;
	
	private Image whiteBrickImage;
	private Image blackBrickImage;
	private Image backgroundImage;

	public void init()
	{
		try
		{
			whiteBrickImage = getImage(new URL(getCodeBase(), "images/whitebrick.gif"));
		}		
		catch(MalformedURLException exception)
		{
			System.out.println("Felaktig URL1!");
			//exit();
		}

		try
		{
			blackBrickImage = getImage(new URL(getCodeBase(), "images/blackbrick.gif"));
		}		
		catch(MalformedURLException exception)
		{
			System.out.println("Felaktig URL2!");
			//exit();
		}

		try
		{
			backgroundImage = getImage(new URL(getCodeBase(), "images/background.jpg"));
		}		
		catch(MalformedURLException exception)
		{
			System.out.println("Felaktig URL3!");
			//exit();
		}


		brickButton = new BrickButton[64];
		boardPanel = new BoardPanel(backgroundImage);
		gameBoard = new Board(1);
	
		for(int i = 0; i < 64; i++)
		{
			brickButton[i] = new BrickButton(whiteBrickImage, blackBrickImage);
			boardPanel.add(brickButton[i]);
			brickButton[i].addActionListener(this);
		}
		
		getContentPane().add(boardPanel);

		updateBoard();
				
		setVisible(true);
	}
	
	public void updateBoard()
	{
		for(int i = 0; i < 64; i++)
		{
			switch(gameBoard.getBrickColor(i))
			{
				case 1:
				{
					brickButton[i].setWhite();
					break;
				}

				case -1:
				{
					brickButton[i].setBlack();
					break;
				}
			}
		}
	}

	public void actionPerformed(ActionEvent gameEvent)
	{
		for(int i = 0; i < 64; i++)
		{		
			if(gameEvent.getSource() == brickButton[i])
				gameBoard.setBrick(i);
		}
		
		updateBoard();
	}
}
