<code>&lt;!DOCTYPE html&gt; &lt;html lang="es"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="wi...

Pregunta de la clase:
Obteniendo datos del usuario
JUAN CARLOS ARCADIPANE

JUAN CARLOS ARCADIPANE

Pregunta
studenthace 7 años
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Calculador de Peso</title> <link rel="stylesheet" href="css/bootstrap.min.css"> </head> <body> <h1 class="h-1 mt-5 pt-5" >Tu peso en otro planeta</h1> <p>en la tierra pesas menos que en marte o jupiter</p> <button type="button" class="btn btn-outline-primary">Peso Final</button> <button type="button" class="btn btn-outline-danger"> <script> var g_tierra = 9.8; var g_marte = 3.7; var g_jupiter = 24.8; var peso = 90; var peso_final; peso_final = peso * g_marte / g_tierra; peso_final = parseInt(peso_final); document.write(peso_final); </script> </body> </html>
96 respuestas
para escribir tu comentario
    Eduin Ruiz

    Eduin Ruiz

    studenthace 3 días

    <html lang="es">

    <head>

    <meta charset="UTF-8" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>Animación simplificada</title>

    <style>

    body {

    margin: 0;

    background: #fff;

    display: flex;

    justify-content: center;

    align-items: center;

    height: 100vh;

    overflow: hidden;

    }

    /* Contenedor principal */

    .container {

    position: .container {

    position: relative;

    width: 400px;

    height: 600px;

    }

    /* Imagen fija */

    .image {

    width: 100%;

    height: 100%;

    background-image: url('https://images.unsplash.com/photo-1506744038136-46273834b3fb?ixlib=rb-4.0.1\&auto=format\&fit=crop\&w=800\&q=80'); /* Cambia por tu imagen */

    background-size: cover;

    background-position: center;

    border-radius: 20px;

    opacity: 0;

    animation: fadeIn 2s forwards;

    }

    /* Mano y celular - aparece después */

    .hand-phone {

    position: absolute;

    bottom: 10%;

    right: 10%;

    width: 150px;

    height: 300px;

    opacity: 0;

    animation: fadeIn 2s 2s forwards; /* aparece después */

    }

    /* Mano y celular simple: solo un rectángulo con borde */

    .hand {

    width: 100px;

    height: 150px;

    background: #ffe0b2;

    border-radius: 20px;

    position: absolute;

    bottom: 0;

    right: 25px;

    }

    .phone {

    width: 60px;

    height: 120px;

    background: #222;

    border-radius: 10px;

    position: absolute;

    top: 20px;

    left: 50%;

    transform: translateX(-50%);

    }

    /* Pantalla del celular con la foto */

    .screen {

    width: 40px;

    height: 80px;

    background-image: url('https://images.unsplash.com/photo-1506744038136-46273834b3fb?ixlib=rb-4.0.1\&auto=format\&fit=crop\&w=800\&q=80'); /* misma imagen */

    background-size: cover;

    background-position: center;

    margin: 10px auto;

    border-radius: 5px;

    }

    /* Ojo con reflejo (simulado) */

    .eye {

    position: absolute;

    top: 30%;

    left: 20%;

    width: 80px;

    height: 80px;

    background: transparent;

    transform: translate(-50%, -50%);

    }

    /* Pupila con reflejo */

    .pupil {

    width: 20px;

    height: 20px;

    background: black;

    border-radius: 50%;

    position: absolute;

    top: 50%;

    left: 50%;

    transform: translate(-50%, -50%);

    }

    /* Brillo en pupila para reflejo */

    .reflection {

    width: 8px;

    height: 8px;

    background: white;

    tion: absolute;

    top: 50%;

    left: 50%;

    transform: translate(-50%, -50%);

    }

    /* Brillo en pupila para reflejo */

    .reflection {

    width: 8px;

    height: 8px;

    background: white;

    border-radius: 50%;

    position: absolute;

    top: 20%;

    left: 70%;

    }

    /* Animaciones */

    @keyframes fadeIn {

    to {

    opacity: 1;

    }

    }

    </style>

    </head>

    <body>

    <div class="container">

    <!-- Imagen fija -->

    <div class="image"></div>

    <!-- Mano con celular -->

    <div class="hand-phone">

    <div class="hand"></div>

    <div class="phone">

    <div class="screen"></div>

    </div>

    </div>

    <!-- Ojo con reflejo -->

    <div class="eye">

    <div class="pupil">

    <div class="reflection"></div>

    </div>

    </div>

    </div>

    </body>

    </html>

    adrian porucznik

    adrian porucznik

    studenthace 7 días

    <!DOCTYPE html>

    <html lang="es">

    <head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>CreaTuHit 🎵</title>

    <style>

    body {

    font-family: 'Segoe UI', sans-serif;

    margin: 0;

    padding: 0;

    background: #111;

    color: #fff;

    line-height: 1.6;

    }

    header {

    background: linear-gradient(90deg, #ff0033, #ff8800);

    padding: 20px;

    text-align: center;

    }

    header h1 {

    margin: 0;

    font-size: 2.5em;

    }

    .container {

    padding: 30px 20px;

    max-width: 900px;

    margin: auto;

    }

    h2 {

    color: #ffcc00;

    margin-top: 40px;

    }

    ul {

    padding-left: 20px;

    }

    li {

    margin-bottom: 10px;

    }

    .planes {

    background: #222;

    padding: 20px;

    border-radius: 10px;

    margin-top: 30px;

    }

    .plan {

    margin-bottom: 15px;

    }

    footer {

    background: #000;

    text-align: center;

    padding: 20px;

    margin-top: 50px;

    font-size: 0.9em;

    color: #aaa;

    }

    </style>

    </head>

    <body>

    <header>

    <h2>🎵 CreaTuHit</h2>

    <p>¡Creá música con ritmos de Argentina y el mundo!</p>

    </header>

    <div class="container">

    <section>

    <h3>🎧 ¿Cómo funciona?</h3>

    <ul>

    <li>🎤 Registrate gratis y empezá a crear</li>

    <li>🎶 Probá con <strong>2 canciones gratis</strong></li>

    <li>🛠️ Usá nuestro editor para letras, pistas y bases musicales</li>

    <li>🎼 Elegí ritmos, instrumentos y estilos únicos</li>

    <li>🚀 Subí tus temas y compartilos con la comunidad</li>

    </ul>

    </section>

    <section class="planes">

    <h3>💎 Planes</h3>

    <div class="plan">💰 <strong>Plata</strong>: 10 canciones por solo <strong>$5 USD</strong></div>

    <div class="plan">💎 <strong>Diamante</strong>: 20 canciones y beneficios exclusivos por <strong>$15 USD</strong></div>

    <div class="plan">👑 <strong>Diamante PRO</strong>: ¡creá sin límites y con calidad de estudio!</div>

    </section>

    <section>

    <h3>🎬 ¡Crea. Experimentá. Subí tu Hit!</h3>

    </section>

    </div>

    <footer>

    &copy; 2025 CreaTuHit. Todos los derechos reservados.

    </footer>

    </body>

    </html>

    adrian porucznik

    adrian porucznik

    studenthace 7 días

    CreaTuHit 🎵

    ¡Creá música con ritmos de Argentina y el mundo!

    🎧 ¿Cómo funciona?

    • Registrate gratis y probá creando 2 canciones
    • Usá nuestro editor para letras
    Leonardo Sanchez

    Leonardo Sanchez

    studenthace 8 días

    <!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8" /> <title>Panda Disparando Amor</title> <style> body { margin: 0; background: #fff0f5; overflow: hidden; font-family: Arial, sans-serif; }

    .container { position: relative; width: 100vw; height: 100vh; }

    /* Panda más pequeño al fondo */ .panda { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); font-size: 12em; user-select: none; }

    /* Dedo animado disparando en dirección diagonal */ .finger { position: absolute; bottom: 140px; left: 50%; transform: translateX(-50%) rotate(-40deg); font-size: 2.8em; cursor: pointer; animation: wiggle 1.4s infinite ease-in-out; transform-origin: bottom right; }

    @keyframes wiggle { 0% { transform: translateX(-50%) rotate(-40deg); } 50% { transform: translateX(-50%) rotate(-30deg); } 100% { transform: translateX(-50%) rotate(-40deg); } }

    /* Corazones que salen disparados desde el dedo */ .heart { position: absolute; color: red; font-size: 1em; animation: fly 3s linear forwards; }

    @keyframes fly { 0% { opacity: 1; transform: translate(0, 0) scale(1); } 100% { opacity: 0; transform: translate(80px, -400px) scale(1.5); } }

    /* Corazón gigante en la parte superior */ .big-heart { position: absolute; top: 30px; left: 50%; transform: translateX(-50%); font-size: 20em; color: #ff1a57; opacity: 0; animation: pop 1s ease-out forwards; }

    @keyframes pop { 0% { transform: translateX(-50%) scale(0.4); opacity: 0; } 50% { transform: translateX(-50%) scale(1.2); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0; } }

    /* "TE AMO" animado con corazones */ .text-display { position: absolute; top: 10%; width: 100%; text-align: center; font-size: 6em; pointer-events: none; display: flex; justify-content: center; gap: 10px; }

    .letter { opacity: 0; animation: appear 0.6s forwards; color: red; }

    @keyframes appear { from { transform: scale(0.2); opacity: 0; } to { transform: scale(1); opacity: 1; } } </style> </head> <body> <div class="container"> <div class="text-display" id="teAmoText"></div> <div class="panda">🐼</div> <div class="finger" onclick="shoot()">👉</div> <div id="bigHeartContainer"></div> </div>

    <script> const container = document.querySelector(".container"); const teAmoText = document.getElementById("teAmoText");

    function displayTeAmo() { const text = "TE AMO"; teAmoText.innerHTML = ""; [...text].forEach((char, i) => { const span = document.createElement("span"); span.className = "letter"; span.textContent = char === " " ? "\u00A0" : "❤️"; span.style.animationDelay =

    ${i \* 0.2}s
    ; teAmoText.appendChild(span); }); }

    function shoot() { // Corazones voladores for (let i = 0; i < 8; i++) { const heart = document.createElement("div"); heart.className = "heart"; heart.textContent = "❤️"; heart.style.left =

    calc(50% + ${Math.random() \* 60 - 30}px)
    ; heart.style.bottom = "160px"; container.appendChild(heart); setTimeout(() => heart.remove(), 3000); }

    // Corazón grande const bigHeart = document.createElement("div"); bigHeart.className = "big-heart"; bigHeart.textContent = "❤️"; document.getElementById("bigHeartContainer").appendChild(bigHeart); setTimeout(() => bigHeart.remove(), 1200);

    // Frase TE AMO (animada con corazones) displayTeAmo(); }

    // Inicial displayTeAmo(); </script> </body> </html>

    Heidi Herrera

    Heidi Herrera

    studenthace 12 días

    <!DOCTYPE html>

    <html lang="es">

    <head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Aurum & Blanc - Joyería de Lujo</title>

    <style>

    /* Estilos generales */

    body {

    font-family: 'Cormorant Garamond', serif;

    margin: 0;

    padding: 0;

    background-color: #fffaf5;

    color: #3a3226;

    overflow-x: hidden;

    }

    .container {

    width: 50%;

    height: 11in;

    float: left;

    position: relative;

    box-sizing: border-box;

    padding: 30px;

    background: linear-gradient(to bottom, #ffffff 0%, #fff9f0 100%);

    border-right: 1px solid #f0e6d8;

    }

    /* Encabezado */

    header {

    text-align: center;

    margin-bottom: 40px;

    position: relative;

    }

    .logo {

    font-size: 3.2rem;

    font-weight: 700;

    color: #c0a062;

    text-shadow: 1px 1px 3px rgba(0,0,0,0.1);

    letter-spacing: 1px;

    margin-bottom: 5px;

    }

    .logo span {

    color: #3a3226;

    font-weight: 300;

    }

    .slogan {

    font-size: 0.85rem;

    letter-spacing: 4px;

    text-transform: uppercase;

    color: #a09070;

    margin-top: 5px;

    font-style: italic;

    }

    /* Galería de joyas */

    .gallery {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 20px;

    margin-top: 30px;

    }

    .jewel {

    position: relative;

    cursor: pointer;

    transition: all 0.4s ease;

    overflow: hidden;

    border-radius: 5px;

    }

    .jewel:hover {

    transform: translateY(-5px);

    box-shadow: 0 10px 20px rgba(192, 160, 98, 0.2);

    }

    .jewel-img {

    width: 100%;

    height: 140px;

    background-color: #f9f5ee;

    object-fit: cover;

    border: 1px solid #f0e6d8;

    transition: transform 0.5s ease;

    }

    .jewel:hover .jewel-img {

    transform: scale(1.05);

    }

    .jewel-overlay {

    position: absolute;

    bottom: 0;

    left: 0;

    right: 0;

    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 100%);

    padding: 15px 10px;

    color: white;

    }

    .jewel-name {

    font-size: 0.85rem;

    font-weight: 600;

    margin-bottom: 3px;

    letter-spacing: 0.5px;

    }

    .jewel-price {

    font-size: 0.8rem;

    color: #c0a062;

    font-weight: 500;

    }

    /* Llamado a la acción */

    .cta {

    position: absolute;

    bottom: 40px;

    left: 0;

    right: 0;

    text-align: center;

    padding: 0 30px;

    }

    .cta-button {

    background: linear-gradient(to right, #c0a062 0%, #d4b87a 100%);

    color: white;

    border: none;

    padding: 14px 35px;

    font-size: 0.9rem;

    border-radius: 30px;

    cursor: pointer;

    transition: all 0.4s;

    letter-spacing: 1.5px;

    box-shadow: 0 4px 15px rgba(192, 160, 98, 0.4);

    text-transform: uppercase;

    font-weight: 500;

    }

    .cta-button:hover {

    background: linear-gradient(to right, #b59558 0%, #c8ae70 100%);

    transform: translateY(-3px);

    box-shadow: 0 6px 20px rgba(192, 160, 98, 0.5);

    }

    /* Elementos decorativos */

    .gold-line {

    height: 1px;

    background: linear-gradient(to right, transparent, #c0a062, transparent);

    margin: 25px auto;

    width: 80%;

    }

    /* Modal */

    .modal {

    display: none;

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background-color: rgba(0,0,0,0.85);

    z-index: 1000;

    justify-content: center;

    align-items: center;

    }

    .modal-content {

    background-color: #fffaf5;

    padding: 40px;

    border-radius: 5px;

    max-width: 500px;

    text-align: center;

    position: relative;

    border: 1px solid #f0e6d8;

    box-shadow: 0 10px 30px rgba(0,0,0,0.2);

    }

    .close-modal {

    position: absolute;

    top: 15px;

    right: 20px;

    font-size: 1.8rem;

    cursor: pointer;

    color: #c0a062;

    transition: color 0.3s;

    }

    .close-modal:hover {

    color: #a58a4d;

    }

    /* Responsivo */

    @media (max-width: 768px) {

    .container {

    width: 100%;

    float: none;

    }

    .logo {

    font-size: 2.5rem;

    }

    }

    </style>

    <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;600;700\&display=swap" rel="stylesheet">

    </head>

    <body>

    <div class="container">

    <header>

    <div class="logo">AURUM<span> & BLANC</span></div>

    <div class="slogan">Elegancia atemporal en oro y diamantes</div>

    <div class="gold-line"></div>

    </header>

    <div class="gallery">

    <div class="jewel" onclick="openModal('Collar Diamante Étoile', '$2,450')">

    <img src="https://images.unsplash.com/photo-1599643478518-a784e5dc4c8f?ixlib=rb-1.2.1\&auto=format\&fit=crop\&w=500\&q=80" alt="Collar Diamante Étoile" class="jewel-img">

    <div class="jewel-overlay">

    <div class="jewel-name">Collar Diamante Étoile</div>

    <div class="jewel-price">$2,450</div>

    </div>

    </div>

    <div class="jewel" onclick="openModal('Anillo Oro Solaire', '$1,890')">

    <img src="https://images.unsplash.com/photo-1605100804763-247f67b3557e?ixlib=rb-1.2.1\&auto=format\&fit=crop\&w=500\&q=80" alt="Anillo Oro Solaire" class="jewel-img">

    <div class="jewel-overlay">

    <div class="jewel-name">Anillo Oro Solaire</div>

    <div class="jewel-price">$1,890</div>

    </div>

    </div>

    <div class="jewel" onclick="openModal('Pendientes Perla Lune', '$1,650')">

    <img src="https://images.unsplash.com/photo-1602173574767-37ac01994b2a?ixlib=rb-1.2.1\&auto=format\&fit=crop\&w=500\&q=80" alt="Pendientes Perla Lune" class="jewel-img">

    <div class="jewel-overlay">

    <div class="jewel-name">Pendientes Perla Lune</div>

    <div class="jewel-price">$1,650</div>

    </div>

    </div>

    <div class="jewel" onclick="openModal('Brazalete Platino Luxe', '$3,200')">

    <img src="https://images.unsplash.com/photo-1611591437281-460bfbe1220a?ixlib=rb-1.2.1\&auto=format\&fit=crop\&w=500\&q=80" alt="Brazalete Platino Luxe" class="jewel-img">

    <div class="jewel-overlay">

    <div class="jewel-name">Brazalete Platino Luxe</div>

    <div class="jewel-price">$3,200</div>

    </div>

    </div>

    </div>

    <div class="cta">

    <button class="cta-button">Reserve una cita privada</button>

    </div>

    </div>

    <!-- Modal -->

    <div class="modal" id="productModal">

    <div class="modal-content">

    <span class="close-modal" onclick="closeModal()">&times;</span>

    <h2 id="modalTitle" style="color: #c0a062; margin-bottom: 5px;"></h3>

    <p id="modalPrice" style="font-size: 1.2rem; margin-bottom: 20px;"></p>

    <p style="line-height: 1.6; margin-bottom: 25px;">Cada pieza Aurum & Blanc es creada con los más altos estándares de calidad, combinando oro de 18k con diamantes de conflicto cero.</p>

    <button class="cta-button" style="margin-top: 10px;">Consulta personalizada</button>

    </div>

    </div>

    <script>

    // Función para abrir el modal

    function openModal(name, price) {

    document.getElementById('modalTitle').textContent = name;

    document.getElementById('modalPrice').textContent = price;

    document.getElementById('productModal').style.display = 'flex';

    document.body.style.overflow = 'hidden';

    }

    // Función para cerrar el modal

    function closeModal() {

    document.getElementById('productModal').style.display = 'none';

    document.body.style.overflow = 'auto';

    }

    // Cerrar modal al hacer clic fuera del contenido

    window.onclick = function(event) {

    const modal = document.getElementById('productModal');

    if (event.target === modal) {

    closeModal();

    }

    }

    // Efecto de scroll suave para los botones

    document.querySelector('.cta-button').addEventListener('click', function() {

    window.scrollTo({

    top: 0,

    behavior: 'smooth'

    });

    });

    // Efecto de parpadeo sutil en el logo

    const logo = document.querySelector('.logo');

    setInterval(() => {

    logo.style.textShadow = '0 0 8px rgba(192, 160, 98, 0.3)';

    setTimeout(() => {

    logo.style.textShadow = '1px 1px 3px rgba(0,0,0,0.1)';

    }, 500);

    }, 3000);

    </script>

    </body>

    </html>

    Heidi Herrera

    Heidi Herrera

    studenthace 12 días

    <!DOCTYPE html>

    <html lang="es">

    <head>

    <meta charset="UTF-8">

    <title>Aurum & Blanc Joyería</title>

    <style>

    body {

    margin: 0;

    padding: 0;

    background: linear-gradient(to bottom, #ffffff, #fdf5e6);

    font-family: 'Georgia', serif;

    color: #a67c00; /* Dorado */

    }

    .portada {

    width: 792px; /* 1/2 tabloide horizontal */

    height: 612px; /* 1/2 tabloide vertical */

    margin: 0 auto;

    border: 5px solid #a67c00;

    box-sizing: border-box;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    background: linear-gradient(to bottom, #fffaf0, #ffffff);

    }

    .titulo {

    font-size: 48px;

    font-weight: bold;

    text-transform: uppercase;

    letter-spacing: 4px;

    text-align: center;

    margin-bottom: 20px;

    }

    .subtitulo {

    font-size: 24px;

    text-align: center;

    margin-bottom: 40px;

    color: #d4af37;

    }

    .decoracion {

    width: 100px;

    height: 4px;

    background-color: #d4af37;

    margin: 10px 0;

    }

    .eslogan {

    font-size: 20px;

    font-style: italic;

    text-align: center;

    color: #a67c00;

    }

    </style>

    </head>

    <body>

    <div class="portada">

    <div class="titulo">Aurum & Blanc</div>

    <div class="subtitulo">Joyería de Lujo</div>

    <div class="decoracion"></div>

    <div class="eslogan">"La elegancia que perdura en el tiempo"</div>

    </div>

    </body>

    </html>

    Daniel Flores

    Daniel Flores

    studenthace 18 días

    <!DOCTYPE html>

    <html lang="es">

    <head>

    <meta charset="UTF-8" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>

    <title>danfcutz - Barbería Profesional</title>

    <style>

    body {

    margin: 0;

    font-family: 'Segoe UI', sans-serif;

    background: #111;

    color: #fff;

    }

    header {

    background: #000;

    text-align: center;

    padding: 2rem 1rem;

    }

    header h1 {

    font-size: 2.5rem;

    color: #0f0;

    margin-bottom: 0.5rem;

    }

    header p {

    font-size: 1.1rem;

    color: #ccc;

    }

    section {

    padding: 2rem 1rem;

    max-width: 800px;

    margin: auto;

    }

    .servicios {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 1rem;

    }

    .servicio {

    background: #222;

    padding: 1rem;

    border-radius: 10px;

    border: 1px solid #333;

    }

    .servicio h3 {

    color: #0f0;

    }

    .whatsapp-btn {

    display: block;

    margin: 3rem auto;

    padding: 1rem 2rem;

    background: #25D366;

    color: #000;

    text-align: center;

    font-size: 1.2rem;

    border-radius: 8px;

    text-decoration: none;

    transition: background 0.3s ease;

    max-width: 300px;

    }

    .whatsapp-btn:hover {

    background: #1ebc5b;

    }

    footer {

    text-align: center;

    padding: 2rem 1rem;

    font-size: 0.9rem;

    color: #555;

    }

    @media (max-width: 600px) {

    .servicios {

    grid-template-columns: 1fr;

    }

    }

    </style>

    </head>

    <body>

    <header>

    <h2>danfcutz</h2>

    <p>Estilo, precisión y cortes con personalidad. Agenda tu cita ahora.</p>

    </header>

    <section>

    <h3>Servicios</h3>

    <div class="servicios">

    <div class="servicio">

    <h4>Corte Clásico</h4>

    <p>Estilo limpio y profesional para cualquier ocasión.</p>

    </div>

    <div class="servicio">

    <h4>Fade / Degradado</h4>

    <p>Transiciones suaves para un look moderno.</p>

    </div>

    <div class="servicio">

    <h4>Barba & Afeitado</h4>

    <p>Recorte detallado o afeitado al ras con toalla caliente.</p>

    </div>

    <div class="servicio">

    <h4>Diseños</h4>

    <p>Rayas, figuras y arte urbano en el corte.</p>

    </div>

    </div>

    <a class="whatsapp-btn" href="https://wa.me/52TU\_NUMERO" target="_blank">

    📲 Agendar cita por WhatsApp

    </a>

    </section>

    <footer>

    © 2025 danfcutz. Todos los derechos reservados.

    </footer>

    </body>

    </html>

    Marcel Rodríguez

    Marcel Rodríguez

    studenthace 21 días

    <!DOCTYPE html>

    <html lang="es">

    <head>

    <meta charset="UTF-8" />

    <title>Simulador de Cubos</title>

    <style>

    body {

    font-family: sans-serif; text-align: center;

    background: #f8f8f8;

    }

    .grid {

    display: grid;

    grid-template-columns: 100px 100px;

    gap: 10px;

    margin: 20px auto;

    width: max-content;

    }

    .cube {

    width: 100px; height: 100px;

    background: #d0eaff;

    display: flex;

    justify-content: center;

    align-items: center;

    font-size: 16px;

    border: 2px solid #0077cc;

    border-radius: 12px;

    flex-direction: column;

    }

    .direction {

    font-weight: bold;

    font-size: 18px;

    }

    button {

    margin: 6px;

    padding: 10px 20px;

    font-size: 16px;

    }

    </style>

    </head>

    <body>

    <h2>Simulador de Cubos 🧊</h2>

    <p>Haz clic en un cubo para girarlo con sus vecinos. Objetivo: todos mirando al <strong>NORTE</strong>.</p>

    <div class="grid">

    <div class="cube" id="Q1">Q1<br><span class="direction"></span></div>

    <div class="cube" id="Q2">Q2<br><span class="direction"></span></div>

    <div class="cube" id="C">C<br>🧭<br><strong>NORTE</strong></div>

    <div class="cube" id="Q4">Q4<br><span class="direction"></span></div>

    <div class="cube" id="Q3">Q3<br><span class="direction"></span></div>

    </div>

    <div>

    <button onclick="touch('Q1')">Tocar Q1</button>

    <button onclick="touch('Q2')">Tocar Q2</button>

    <button onclick="touch('Q3')">Tocar Q3</button>

    <button onclick="touch('Q4')">Tocar Q4</button>

    <button onclick="reset()">Reiniciar</button>

    </div>

    <h3 id="status"></h4>

    <script>

    const directions = ['NORTE', 'ESTE', 'SUR', 'OESTE'];

    // Estado inicial personalizado

    let cubeStates = {

    Q1: 3, // Oeste

    Q2: 2, // Sur

    Q3: 0, // Norte

    Q4: 1 // Este

    };

    const neighbors = {

    Q1: ['Q1', 'Q2', 'Q3'],

    Q2: ['Q2', 'Q1', 'Q4'],

    Q3: ['Q3', 'Q1', 'Q4'],

    Q4: ['Q4', 'Q2', 'Q3']

    };

    function updateDisplay() {

    for (let id of ['Q1', 'Q2', 'Q3', 'Q4']) {

    document.querySelector(

    #${id} .direction
    ).textContent = directions[cubeStates[id]];

    }

    checkWin();

    }

    function touch(id) {

    for (let cube of neighbors[id]) {

    cubeStates[cube] = (cubeStates[cube] + 1) % 4;

    }

    updateDisplay();

    }

    function reset() {

    cubeStates = {

    Q1: 3, // Oeste

    Q2: 2, // Sur

    Q3: 0, // Norte

    Q4: 1 // Este

    };

    updateDisplay();

    }

    function checkWin() {

    const allNorth = Object.values(cubeStates).every(dir => dir === 0);

    document.getElementById("status").textContent = allNorth

    ? "🎉 ¡Ganaste! Todos los cubos miran al NORTE."

    : "📌 Alinea todos los cubos con el centro.";

    }

    updateDisplay();

    </script>

    </body>

    </html>

    Lucia Ramos

    Lucia Ramos

    studenthace un mes

    <!DOCTYPE html><html lang="es"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Generador de Imágenes</title><script src="https://cdn.tailwindcss.com">\</script><style>body {font-family: 'Inter', sans-serif;background-color: #f0f0f0;display: flex;justify-content: center;align-items: center;min-height: 100vh;margin: 0;}.container {background-color: #ffffff;padding: 2rem;border-radius: 1rem;box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);text-align: center;max-width: 90%;width: 500px;}img {max-width: 100%;height: auto;border-radius: 0.5rem;margin-top: 1.5rem;box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);}.loader {border: 4px solid #f3f3f3;border-top: 4px solid #3498db;border-radius: 50%;width: 30px;height: 30px;animation: spin 1s linear infinite;margin: 2rem auto;}@keyframes spin {0% { transform: rotate(0deg); }100% { transform: rotate(360deg); }}</style></head><body><div class="container"><h1 class="text-2xl font-bold text-gray-800 mb-4">Imagen Generada</h2><div id="loading" class="loader"></div><img id="generatedImage" src="" alt="Imagen generada" class="hidden"><p id="errorText" class="text-red-500 mt-4 hidden">Error al generar la imagen. Por favor, inténtalo de nuevo.</p></div>

    <script>document.addEventListener('DOMContentLoaded', async () => {const loadingDiv = document.getElementById('loading');const generatedImage = document.getElementById('generatedImage');const errorText = document.getElementById('errorText');

    try {// Prompt para la generación de la imagenconst prompt = "un dibujo en una libreta de una chica morena con gafas y mirada profunda , la chica es adolescente y tiene un lunar a la derecha arriba del labio , es pequeño";

    // Payload para la API de generación de imágenesconst payload = {instances: { prompt: prompt },parameters: { "sampleCount": 1 }};

    // Clave de API (vacía, se gestionará automáticamente en Canvas)const apiKey = "";const apiUrl =

    https://generativelanguage.googleapis.com/v1beta/models/imagen-3.0-generate-002:predict?key=${apiKey}
    ;

    // Realizar la solicitud a la APIconst response = await fetch(apiUrl, {method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify(payload)});

    const result = await response.json();

    // Verificar la estructura de la respuesta y mostrar la imagenif (result.predictions && result.predictions.length > 0 && result.predictions[0].bytesBase64Encoded) {const imageUrl =

    data:image/png;base64,${result.predictions\[0].bytesBase64Encoded}
    ;generatedImage.src = imageUrl;generatedImage.classList.remove('hidden'); // Mostrar la imagen} else {errorText.classList.remove('hidden'); // Mostrar mensaje de errorconsole.error("Estructura de respuesta inesperada:", result);}} catch (error) {errorText.classList.remove('hidden'); // Mostrar mensaje de errorconsole.error("Error al generar la imagen:", error);} finally {loadingDiv.classList.add('hidden'); // Ocultar el indicador de carga}});</script></body></html>

    Frank  García

    Frank García

    studenthace un mes

    !DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>Llueve Amor</title> <style> body { margin: 0; background: black; overflow: hidden; cursor: default; }

    canvas { display: block; position: absolute; top: 0; left: 0; z-index: 1; }

    .overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 2; display: flex; align-items: center; justify-content: center; pointer-events: none; }

    .center-message { font-family: 'Courier New', monospace; color: #ff69b4; font-size: 3rem; text-align: center; opacity: 0.5; } </style> </head> <body>

    <canvas id="canvas"></canvas>

    <div class="overlay"> <div class="center-message">SELENE 💖</div> </div>

    <script> const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d');

    canvas.width = window.innerWidth; canvas.height = window.innerHeight;

    const text = "TE QUIERO"; const fontSize = 16; const columns = Math.floor(canvas.width / (fontSize * 4)); const drops = new Array(columns).fill(1);

    ctx.font = fontSize + "px monospace";

    function draw() { ctx.fillStyle = "rgba(0, 0, 0, 0.05)"; ctx.fillRect(0, 0, canvas.width, canvas.height);

    ctx.fillStyle = "#ff69b4"; for (let i = 0; i < drops.length; i++) { const x = i * fontSize * 4; const y = drops[i] * fontSize; ctx.fillText(text, x, y);

    if (y > canvas.height && Math.random() > 0.975) { drops[i] = 0; }

    drops[i]++; } }

    setInterval(draw, 50);

    window.addEventListener('resize', () => { canvas.width = window.innerWidth; canvas.height = window.innerHeight; }); </script>

    </body> </html> """

    # Guardar archivo file_path = "/mnt/data/llueve_amor_selene_te_quiero.html" with open(file_path, "w", encoding="utf-8") as f: f.write(html_content_selene_quiero)

Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Programa desde cero, domina Javascript, entiende HTML y aprende de algoritmos. <strong>Sí, desde cero</strong>. Entenderás la lógica del código, cómo piensan los programadores y cómo programar juegos, proyectos y hasta robots y electrónica. Aprender a programar no es fácil, pero Platzi lo hace efectivo.

Curso Gratis de Programación Básica
Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Programa desde cero, domina Javascript, entiende HTML y aprende de algoritmos. <strong>Sí, desde cero</strong>. Entenderás la lógica del código, cómo piensan los programadores y cómo programar juegos, proyectos y hasta robots y electrónica. Aprender a programar no es fácil, pero Platzi lo hace efectivo.