public void paint(Graphics g) {
		super.paint(g);

		if(!win) {
			for(int y = 0; y < Maze.gridSize; y++) {
				for(int x = 0; x < Maze.gridSize; x++) {
					String tile = m.getMap(x, y);
					if(tile.equals("s") && !playerSet) { // Puts the player on the start tile at the beginning
						setPlayer(x, y);
					}
					g.drawImage(m.getImage(tile), x*32 - xOffset*32, y*32 - yOffset*32, null);
				}
			}
			g.drawImage(p.getPlayer(), p.getTileX() * 32 - xOffset*32, p.getTileY() * 32 - yOffset*32, null);
		} else if(win) {
			FontMetrics fm;
			g.setColor(Color.red);
			Rectangle2D rect;

			g.setFont(font1);
			fm = g.getFontMetrics();
			rect = fm.getStringBounds(endMessage, g);
			g.drawString(endMessage, (int) (Maze.width/2 - rect.getWidth()/2), (int) (Maze.height/2 - rect.getHeight()/2));

			g.setFont(font2);
			fm = g.getFontMetrics();
			rect = fm.getStringBounds(resetMessage, g);
			g.drawString(resetMessage, (int) (Maze.width/2 - rect.getWidth()/2), (int) (Maze.height/2 - rect.getHeight()/2 + 20));

			rect = fm.getStringBounds(newMessage, g);
			g.drawString(newMessage, (int) (Maze.width/2 - rect.getWidth()/2), (int) (Maze.height/2 - rect.getHeight()/2 + 40));

			rect = fm.getStringBounds(quitMessage, g);
			g.drawString(quitMessage, (int) (Maze.width/2 - rect.getWidth()/2), (int) (Maze.height/2 - rect.getHeight()/2 + 60));
		}
	}