Mejoras y optimizaciones en general.

This commit is contained in:
2025-10-03 00:05:08 +02:00
parent bd76741bd2
commit d1a7442ffa
32 changed files with 3336 additions and 783 deletions

View File

@@ -6,14 +6,20 @@
<meta name='description' content='Página web de juegos online de Fernando Méndez.'>
<title>FerMdez - Games</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Montserrat:700,400&display=swap" rel="stylesheet">
<meta name="theme-color" content="#3d5afe">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap" rel="stylesheet">
<link rel='icon' href='./media/favicon.ico' sizes='192x192' />
<link rel="manifest" href="manifest.webmanifest">
<meta name='keywords' content='fermdez, juegos, games, mini-juegos, fermdez juegos, fermdez games'/>
<meta property='og:type' content='website' />
<meta property='og:site_name' content='FerMdez' />
<meta property='og:title' content='Fernando Méndez' />
<meta property='og:description' content='Página web de juegos online de Fernando Méndez.' />
<meta property='og:image' content='https://games.fermdez.net/media/favicon.ico' />
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; script-src 'self' 'unsafe-inline'; connect-src 'self'; base-uri 'self'; form-action 'self'">
<meta name="referrer" content="no-referrer">
<meta property='og:url' content='https://games.fermdez.net/' />
<style>
body {
@@ -157,7 +163,7 @@
<body>
<header>
<h1>Fermdez - Juegos</h1>
<p>¡Prueba estos mini juegos creados por <a href="https://fermdez.net/" target="_blank">Fernando Méndez</a>!<br />Elige, juega y supera tus récords.</p>
<p>¡Prueba estos mini juegos creados por <a href="https://fermdez.net/" target="_blank" rel="noopener noreferrer">Fernando Méndez</a>!<br />Elige, juega y supera tus récords.</p>
</header>
<main>
<div class="grid">
@@ -165,7 +171,7 @@
<div class="game-icon">🏓</div>
<div class="game-title">Pong Clásico</div>
<div class="game-desc">Juega al clásico Pong contra la máquina usando las flechas.</div>
<a class="play-btn" href="pong/" target="_blank">Jugar
<a class="play-btn" href="pong/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -173,7 +179,7 @@
<div class="game-icon">🔲</div>
<div class="game-title">Simon Dice</div>
<div class="game-desc">Recuerda y repite la secuencia de colores para avanzar de nivel.</div>
<a class="play-btn" href="simon-dice/" target="_blank">Jugar
<a class="play-btn" href="simon-dice/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -181,7 +187,7 @@
<div class="game-icon">🧮</div>
<div class="game-title">Buscaminas</div>
<div class="game-desc">Marca las minas y evita explotarlas en el tablero.</div>
<a class="play-btn" href="buscaminas/" target="_blank">Jugar
<a class="play-btn" href="buscaminas/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -189,7 +195,7 @@
<div class="game-icon">🃏</div>
<div class="game-title">Juego de Memoria</div>
<div class="game-desc">Descubre todas las parejas de cartas y ejercita tu memoria.</div>
<a class="play-btn" href="memoria/" target="_blank">Jugar
<a class="play-btn" href="memoria/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -197,7 +203,7 @@
<div class="game-icon">🃏</div>
<div class="game-title">Juego de Memoria Avanzado</div>
<div class="game-desc">Descubre todas las parejas de cartas y ejercita tu memoria.</div>
<a class="play-btn" href="memoria-v2/" target="_blank">Jugar
<a class="play-btn" href="memoria-v2/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -205,7 +211,7 @@
<div class="game-icon">⭕❌</div>
<div class="game-title">3 en Raya</div>
<div class="game-desc">Tres en línea clásico: reta a un amigo.</div>
<a class="play-btn" href="3-en-raya/" target="_blank">Jugar
<a class="play-btn" href="3-en-raya/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -213,7 +219,7 @@
<div class="game-icon">⭕❌</div>
<div class="game-title">3 en Raya vs Máquina</div>
<div class="game-desc">Tres en línea clásico: reta a una IA invencible.</div>
<a class="play-btn" href="3-en-raya-computer/" target="_blank">Jugar
<a class="play-btn" href="3-en-raya-computer/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -221,7 +227,7 @@
<div class="game-icon">🔵🔴🔵🔴</div>
<div class="game-title">4 en Raya vs Máquina</div>
<div class="game-desc">Conecta 4 fichas antes que la máquina en este clásico de estrategia.</div>
<a class="play-btn" href="4-en-raya/" target="_blank">Jugar
<a class="play-btn" href="4-en-raya/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -229,7 +235,7 @@
<div class="game-icon">🧩</div>
<div class="game-title">Puzzle de Números</div>
<div class="game-desc">Resuelve el clásico puzzle de 15 piezas deslizantes.</div>
<a class="play-btn" href="puzle-numeros/" target="_blank">Jugar
<a class="play-btn" href="puzle-numeros/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -237,7 +243,7 @@
<div class="game-icon">🔢</div>
<div class="game-title">Adivina el Número</div>
<div class="game-desc">Resuelve el número que ha pensado la máquina en menos de 7 intentos.</div>
<a class="play-btn" href="puzle-numeros/" target="_blank">Jugar
<a class="play-btn" href="adivina/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -245,7 +251,7 @@
<div class="game-icon">🐍</div>
<div class="game-title">Snake Game</div>
<div class="game-desc">Haz crecer la serpiente comiendo puntos, ¡no choques con la pared!</div>
<a class="play-btn" href="serpiente/" target="_blank">Jugar
<a class="play-btn" href="serpiente/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -253,7 +259,7 @@
<div class="game-icon">🧱</div>
<div class="game-title">Rompe Ladrillos</div>
<div class="game-desc">Rompe todos los ladrillos controlando la pala y la bola.</div>
<a class="play-btn" href="ladrillos" target="_blank">Jugar
<a class="play-btn" href="ladrillos/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -261,7 +267,7 @@
<div class="game-icon">⏱️</div>
<div class="game-title">Carrera de Reacción</div>
<div class="game-desc">Haz clic cuando la pantalla se ponga verde, ¡mide tu tiempo de reacción!</div>
<a class="play-btn" href="reflejos/" target="_blank">Jugar
<a class="play-btn" href="reflejos/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -269,7 +275,7 @@
<div class="game-icon">🦦</div>
<div class="game-title">Atrapa el Topo</div>
<div class="game-desc">Haz clic en el topo cuando aparezca y suma puntos.</div>
<a class="play-btn" href="topo/" target="_blank">Jugar
<a class="play-btn" href="topo/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
</div>
@@ -277,9 +283,34 @@
<div class="game-icon">🇪🇸</div>
<div class="game-title">Banderas</div>
<div class="game-desc">Empereja la bandera con su país correspondiente.</div>
<a class="play-btn" href="banderas/" target="_blank">Jugar
<a class="play-btn" href="banderas/" target="_blank" rel="noopener noreferrer">Jugar
<svg viewBox="0 0 24 24"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js')
.then(reg => {
// Forzar activación inmediata si hay un SW en espera
if (reg.waiting) {
reg.waiting.postMessage({ type: 'SKIP_WAITING' });
}
// Detectar nuevas actualizaciones
reg.addEventListener('updatefound', () => {
const newSW = reg.installing;
if (newSW) {
newSW.addEventListener('statechange', () => {
if (newSW.state === 'installed' && navigator.serviceWorker.controller) {
console.log('Nueva versión del Service Worker instalada');
}
});
}
});
})
.catch(err => console.error('Fallo al registrar el Service Worker:', err));
});
}
</script>
</div>
</div>
</main>