import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class GameBoard extends JFrame  {
	
	private JPanel mainPanel;
	private GameController gc;
	private GameCard [] deck;
	

	public GameBoard() {
		setSize(400, 400);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setTitle("Memory Game");
		
		
		mainPanel = createGamePanel();
		
		Container c = getContentPane();
		c.add(mainPanel);
		
	
		setVisible(true);
	
	}

	private JPanel createGamePanel() {
		// TODO Auto-generated method stub
		JPanel p = new JPanel();
		
		p.setLayout(new GridLayout(3,4));
		
		gc = new GameController();
		
		deck = new GameCard[12];
		
		for(int i=0; i < deck.length; i++) {
			deck[i] = new GameCard(Color.RED);
			deck[i].addActionListener(gc);
			p.add(deck[i]);
		}
	
		
		return p;
	}

	

	public static void main(String[] args) {
		GameBoard m = new GameBoard();
	}

	private class GameController implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
			
			//which card was clicked?
			GameCard c = (GameCard ) arg0.getSource();
			
			//turn the card face up
			c.faceUp();
			
			//Wait 200 milliseconds
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			//turn the card face down
			c.faceDown();
			
		}
		
	}
	
}
