public void move() throws BitItSelfException
	{
		Game.listen_keyboard = false;
		
		if(food.isEaten(snake))
		{
			Game.score.incrementsCurrentScore(false);
			specialFoodTimer = specialFoodTimer - 1;
			
			food = null;
			snake.getLonger();
			food = new Food(snake.getBody(), getWidth(), getHeight());
		}
		
		if(specialFood == null)
		{
			if(specialFoodTimer <= 0)
			{
				specialFood = new SpecialFood(snake.getBody(), getWidth(), getHeight());
			}
		}
		else
		{
			if(specialFood.getTimeToLive() > 0)
			{
				specialFood.dicreaseTime();
			
				if(specialFood.isEaten(snake))
				{
					Game.score.incrementsCurrentScore(true);
					specialFood = null;
					specialFoodTimer = 15;
				}
			}
			else
			{
				specialFood = null;
				specialFoodTimer = 15;
			}
		}
	
		try
		{
			updatePosition(snake);
		}
		catch(BorderException e)
		{
			repaint();
			JOptionPane.showMessageDialog(this, e.getMessage(), "Snake", JOptionPane.ERROR_MESSAGE);
			Game.score.updateHighScore(Game.score.getCurrentScore());
			try
			{
				Thread.sleep(200);
			}
			catch(Exception e2)
			{
				System.out.println(e2.getMessage());
			}
			System.exit(0);
		}
		
		for(int i=1; i<snake.getBody().size(); i++)
		{
			if(snake.getBody().get(0).equals(snake.getBody().get(i)))
			{
				throw new BitItSelfException("Perdu!\nVous vous êtes mordu la queue.");
			}
		}

		repaint();
		
		Game.listen_keyboard = true;
	}