public void render(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.black);
        g2.setStroke(new BasicStroke(1F));
        
        int width = 20;
        
        for (int i = 0; i < this.board.getWidth(); i++) {
            // Draw horizontal lines
            g2.drawLine(0, width * (i + 1), width * this.board.getWidth(), width * (i + 1));
        }
        
        for (int i = 0; i < this.board.getHeight(); i++) {
            // Draw vertical lines
            g2.drawLine(width * (i + 1), 0, width * (i + 1), width * this.board.getWidth());
        }
        
        for (int row = 0; row < this.board.getHeight(); row++) {
            for (int col = 0; col < this.board.getWidth(); col++) {
                // Draw the pieces
                Player player = this.board.get(row, col);
                if (player != null) {
                    char signature = player.getSignature();
                    Image image;
                    if (signature == 'X') {
                        image = imgX;
                    } else {
                        image = imgO;
                    }
                    g2.drawImage(image, width * col, width * row, this);
                }
            }
        }
    }