public void paint(Graphics g) {
    	
    	int width = getWidth();
    	int height = getHeight();
    	
    	// paint a mini-version of the entire map
    	int boardWidth = _board.getWidth();
    	int boardHeight = _board.getHeight();

    	double blockWidth = (double) width / (double) boardWidth;
    	double blockHeight = (double) height / (double) boardHeight;
    	
    	Graphics2D brush = (Graphics2D) g;
    	
//    	System.out.println("blockWidth: " + blockWidth + ", blockHeight: " + blockHeight);
    	
    	brush.scale(blockWidth, blockHeight);
    	
    	
    	for(int i = 0; i < boardWidth; i++)
    		for(int j = 0; j < boardHeight; j++) {
    			
    			// if this square is a tower, draw the tower with the player's assigned color
    			if(_board.isTower(i, j)) {
    				brush.setColor(Color.RED);
    			} 
    			
    			// otherwise, draw a rectangle with an approximate texture color representing this square
    			else {
    				switch(_board.getTile(i, j)) {
    					case GRAVEL:
    						brush.setColor(new Color(243,218,115));
    						break;
    					case GRASS:
    						brush.setColor(Color.GREEN.darker().darker());
    						break;
    					case DIRT:
    						brush.setColor(new Color(51,25,0));
    						break;
    				}
    			}
				brush.drawRect(i, j, 1, 1);
    		}
    	

    	// draw the runners
    	for(ArrayList<Runner> player : _runners.getAllRunners())
    		for(Runner r : player) {
    			Ellipse2D circle = new Ellipse2D.Double(r.getPosX(), r.getPosY(), 1, 1);
    			brush.setColor(Color.RED);
    			brush.draw(circle);
    		}

    	// draw a yellow rectangle showing where in the minimap GameMap is focused on
    	double topleftX = _gameMap.getRefX() * boardWidth;
    	double topleftY = _gameMap.getRefY() * boardHeight;
    	
    	Rectangle2D rect = new Rectangle2D.Double(topleftX, topleftY, 
    			(1.0 /  _gameMap.getZoomX()) * boardWidth, 
    			(1.0 / _gameMap.getZoomY()) * boardHeight);
    	brush.setColor(Color.YELLOW);
    	brush.draw(rect);
    	
    	
//    	brush.drawLine(topleftX, topleftY, toprightX, toprightY);
    }