// This method is called once a second, and it is a good place to
 // do things like check if the snake has collided into the wall
 // or the apple.
 public void onTimer() {
   if ((snake.hasHitTail() == false) && (snake.hasHitWall(gameBoard) == false)) {
     snake.move(gameBoard);
     if (snake.hasHitApple(apple)) {
       apple.setPos(gameBoard.getRandomXCoord(), gameBoard.getRandomYCoord());
       System.out.println("It hit the apple");
       scoreBoard.incrementPlayerScore();
     }
   } else gameOver = true;
 }
 // This method is called whenever a keyboard button is pressed
 // within your game. The keyCode represents the key the actual key pushed.
 // You can check which keyCode using 'KeyEvent' constants.
 // i.e keyCode == KeyEvent.VK_G
 protected void onKeyPress(int keyCode) {
   // Move Up
   if (keyCode == KeyEvent.VK_UP) {
     snake.setDirection("up");
   }
   // Move Right
   if (keyCode == KeyEvent.VK_RIGHT) {
     snake.setDirection("right");
   }
   // Move Down
   if (keyCode == KeyEvent.VK_DOWN) {
     snake.setDirection("down");
   }
   // Move Left
   if (keyCode == KeyEvent.VK_LEFT) {
     snake.setDirection("left");
   }
 }
 // This method is called once a second to redraw the canvas,
 // so you can do things like draw the snake.
 public void redrawCanvas(Graphics canvas) {
   gameBoard.draw(canvas);
   scoreBoard.drawScore(canvas, gameOver);
   snake.draw(canvas);
   apple.draw(canvas);
 }