@Override
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		drawMaze(g);

		for (MazeRat rat : maze.getRats()) {
			g.setColor(rat.getColor());
			g.fillOval(rat.position.x * TILE_SIZE, rat.position.y * TILE_SIZE,
					TILE_SIZE, TILE_SIZE);

			double offX = 0, offY = 0;
			switch (rat.dir) {
			case EAST:
				offX = .5;
				break;
			case NORTH:
				offY = -.5;
				break;
			case SOUTH:
				offY = .5;
				break;
			case WEST:
				offX = -.5;
				break;
			default:

			}
			g.setColor(Color.BLACK);
			g.drawLine(rat.position.x * TILE_SIZE + TILE_SIZE / 2,
					rat.position.y * TILE_SIZE + TILE_SIZE / 2,
					(int) (rat.position.x * TILE_SIZE + TILE_SIZE / 2 + offX
							* TILE_SIZE), (int) (rat.position.y * TILE_SIZE
							+ TILE_SIZE / 2 + offY * TILE_SIZE));

			/*
			 * switch (rat.dir) { case EAST: g.drawLine(rat.position.x *
			 * TILE_SIZE + TILE_SIZE, rat.position.y * TILE_SIZE, rat.position.x
			 * * TILE_SIZE + TILE_SIZE, rat.position.y * TILE_SIZE + TILE_SIZE);
			 * break; case NORTH: g.drawLine(rat.position.x * TILE_SIZE,
			 * rat.position.y TILE_SIZE, rat.position.x * TILE_SIZE + TILE_SIZE,
			 * rat.position.y * TILE_SIZE); break; case SOUTH:
			 * g.drawLine(rat.position.x * TILE_SIZE, rat.position.y TILE_SIZE +
			 * TILE_SIZE, rat.position.x * TILE_SIZE + TILE_SIZE, rat.position.y
			 * * TILE_SIZE + TILE_SIZE); break; case WEST:
			 * g.drawLine(rat.position.x * TILE_SIZE, rat.position.y TILE_SIZE,
			 * rat.position.x * TILE_SIZE, rat.position.y TILE_SIZE +
			 * TILE_SIZE); break; default: break;
			 * 
			 * }
			 */
		}
	}