public GameCourt(JLabel points, JLabel lives, JLabel highScore){
		// creates border around the court area, JComponent method
		setBorder(BorderFactory.createLineBorder(Color.BLACK));
        
        // The timer is an object which triggers an action periodically
        // with the given INTERVAL. One registers an ActionListener with
        // this timer, whose actionPerformed() method will be called 
        // each time the timer triggers. We define a helper method
        // called tick() that actually does everything that should
        // be done in a single timestep.
		Timer timer = new Timer(INTERVAL, new ActionListener(){
			public void actionPerformed(ActionEvent e){
				tick();
			}
		});
		timer.start(); // MAKE SURE TO START THE TIMER!

		// Enable keyboard focus on the court area
		// When this component has the keyboard focus, key
		// events will be handled by its key listener.
		setFocusable(true);

		// this key listener makes the square move in the direction of
		// the last arrow key press, by changing the square's
		// velocity accordingly. (The tick method below actually 
		// moves the square.)
		addKeyListener(new KeyAdapter(){
			public void keyPressed(KeyEvent e){
				Square head = square.get(square.size() - 1);
				int keyCode = e.getKeyCode();
				if (keyCode == KeyEvent.VK_LEFT &&
						!(head.v_x > 0)) {
					head.v_x = -SQUARE_VELOCITY;
					head.v_y = 0;
				} else if (keyCode == KeyEvent.VK_RIGHT &&
						!(head.v_x < 0)) {
					head.v_x = SQUARE_VELOCITY;
					head.v_y = 0;
				} else if (keyCode == KeyEvent.VK_DOWN &&
						!(head.v_y < 0)) {
					head.v_y = SQUARE_VELOCITY;
					head.v_x = 0;
				} else if (keyCode == KeyEvent.VK_UP &&
						!(head.v_y > 0)) {
					head.v_y = -SQUARE_VELOCITY;
					head.v_x = 0;
				}
			}
		});
		ate = false;
		speedTimer = -1;
		blinker = 0;
		walls = new ArrayList<Wall>();
		square = new ArrayList<Square>();
		numPoints = 0;
		this.points = points;
		crntLives = 3;
		this.lives = lives;
		this.highScore = highScore;
		JOptionPane.showMessageDialog(null, 
				"Welcome to Snake!\nEat the blue food to make the snake grow"
				+ "\nand get points \n"
				+ "Use the arrow keys to control the snake", "Hello World", JOptionPane.PLAIN_MESSAGE);
		JOptionPane.showMessageDialog(null, 
				"Game Rules: \n The yellow snitch is a random power \n up that is either: \n"
				+ "1) Equivalent of eating 2 foods \n2) Inserts randomly placed obstacles"
				+ "\n3) The snake reverses its direction \n"
				+ "4) HyperSpeed, 2x your speed!", "Rules", JOptionPane.PLAIN_MESSAGE);
		JOptionPane.showMessageDialog(null, "Ready to Start?");
		}