private void showNetworkMenu(Graphics2D g2, Rectangle d, Font font) {
        // Draw subtitle
        Font fontC = new Font(FONT_NAME, Font.BOLD, (int) (0.08 * height)); // scale 40/500
        Rectangle ds = fontC.getStringBounds("Juego en Red", g2.getFontRenderContext()).getBounds();
        g2.setFont(fontC);
        g2.setColor(Color.lightGray);
        g2.drawString("Juego en Red", width / 2 - ds.width / 2, d.height + ds.height + g2.getFontMetrics().getAscent());
        g2.setFont(font);
        g2.setColor(Color.WHITE);

        Rectangle2D.Double r1 = DrawText(g2, font, null, "INICIAR JUEGO");
        Rectangle2D.Double r2 = DrawText(g2, font, r1, "BUSCAR JUEGO");
        Rectangle2D.Double r3 = DrawText(g2, font, r2, "REGRESAR");

        // Check if buttons are pressed
        if (r1.contains(new Point2D.Double(x, y))) {
            // iniciar juego en red
            waitForGame = true;
            x = 0;
            y = 0;
            wfgt1 = new Date().getTime();
            // esperar mensajes multicast con el IP de un slave para contactarlo
            new WaitForGameThread(this).start();
        } else if (r2.contains(new Point2D.Double(x, y))) {
            // buscar juego en red
            searchForGame = true;
            x = 0;
            y = 0;
            wfgt1 = new Date().getTime();
            try {
                // Esperar conexiones TCP
                slaveGameThread = new SlaveGameThread(this);
                slaveGameThread.start();
                // Enviar hostname e IP para que un master me contacte
                new SearchForGameThread(this).start();
            } catch (Exception e) {
                RemotePlayer = "ERROR: " + e.getMessage();
            }
        } else if (r3.contains(new Point2D.Double(x, y))) {
            isPlay = false;
            x = 0;
            y = 0;
        }
    }