Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻譯準備中
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證在瀏覽器中與電腦對弈,練習棋局開局、殘局與戰術。
AI 翻譯
Practise chess openings, endgames and tactics against the computer, right in your browser.
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Aperturas, finales y táctica, en tu navegador. Juega aperturas y finales contra el ordenador, encuentra la jugada en posiciones tácticas y analiza con motor. Es para quien quiere practicar ajedrez a su ritmo: no hay cuenta que crear, ni nada que instalar, ni anuncios, y tu progreso se queda en tu equipo.檢視完整 README ↗
Español · English
Aperturas, finales y táctica, en tu navegador. Aprende a jugar desde cero con lecciones cortas, juega aperturas y finales contra el ordenador, encuentra la jugada en posiciones tácticas y analiza con motor. Todo en lenguaje llano: las jugadas se leen en palabras («caballo a f3») y, si lo prefieres, en notación. Es para quien quiere aprender y practicar ajedrez a su ritmo: no hay registro que hacer, ni nada que instalar, ni anuncios, y tu progreso se queda en tu equipo salvo que decidas sincronizarlo con un código.
Aprender ajedrez desde cero, por niveles. Principiante, medio y avanzado: desde cómo se mueve cada pieza hasta la táctica, los finales que hay que saber y la estrategia. Cada lección avanza por pasos con un tablero y texto en lenguaje llano, y mezcla explicaciones con ejercicios: encontrar la jugada, elegir entre opciones o jugar la posición hasta el final. Las palabras de ajedrez se abren en una burbuja con su definición, y el glosario las reúne todas por familias, cada una con su tablero de ejemplo. Se recuerdan las lecciones que completas, y la página te lleva a la siguiente. Hay 36 lecciones (12 por nivel), 89 términos en el glosario y 550 problemas.
Practicar más con problemas reales de Lichess. Cada lección de táctica y de finales tiene sus problemas, sacados de la base abierta de problemas de Lichess (CC0), de diez en diez y del más fácil al más difícil. Se recuerda cuántos resuelves a la primera.
Aprender aperturas jugándolas y practicándolas. En Jugar, el rival responde con las líneas que cubrimos, más a menudo la principal, o es Stockfish en cinco niveles de fuerza; la teoría va al lado y te avisa cuando te sales de ella. En Practicar solo vale la jugada de la línea: queda dominada tras tres pasadas seguidas sin fallos.
Convertir y aguantar finales contra un rival perfecto. El rival juega con la tablebase de Lichess, y un panel te dice el veredicto de la posición. En los finales de tablas hay que aguantar quince jugadas sin perderlas. Los que superas se recuerdan.
Buscar la mejor jugada en posiciones tácticas. Cada posición tiene su número, de menos a más jugadas, y no te enseña la solución antes de resolverla. Se recuerdan las que resuelves, y las que aciertas a la primera.
Analizar cualquier idea en un tablero libre. El historial es un árbol donde puedes añadir variaciones y plegarlas; el motor es opcional (barra de evaluación y tres mejores líneas); importas y exportas FEN y PGN; y los enlaces llevan una posición, sus jugadas o el árbol entero con sus variaciones.
Leer las jugadas como prefieras y jugar con el teclado. Un conmutador en la cabecera cambia entre palabras y notación en toda la app. El tablero se maneja sin ratón: las flechas mueven un cursor por las casillas e Intro elige la pieza y la juega.
Sin cookies, sin email y sin contraseña. Tu progreso se guarda en tu navegador (IndexedDB) y, si no creas un código, no sale de ahí. Si creas uno, las cuatro palabras también se guardan en el navegador para sincronizar solas; «Dejar de sincronizar aquí» las olvida. La página Acerca de lo explica dentro de la app, con cómo borrarlo.
Aparte de eso, salen dos cosas del navegador:
localhost.Angular 22 con componentes standalone, señales y detección de cambios sin zone.js. Alojado como sitio estático en Cloudflare (Workers).
pnpm 10 o superior, ejecutándose sobre Node.js 22 o superior. No hace falta instalar nada más:
packageManager (11.28.0).devEngines.runtime. pnpm install lo descarga
y todos los scripts de pnpm se ejecutan con él, sea cual sea el Node.js
instalado en la máquina.pnpm install
pnpm dev
Después abre http://localhost:4200.
| Script | Qué hace |
|---|---|
pnpm dev | Arranca el servidor de desarrollo (pnpm start es lo mismo) |
pnpm build | Genera el bundle de producción en dist/cheesy/browser |
pnpm test | Ejecuta una vez los tests unitarios y las comprobaciones rápidas del contenido |
pnpm test:coverage | Ejecuta los tests unitarios con informe de cobertura en coverage/ |
pnpm lint | Pasa el linter por TypeScript y plantillas |
pnpm format | Formatea el código con Prettier |
pnpm format:check | Comprueba el formato sin escribir |
pnpm content:build | Regenera los JSON del contenido a partir de sus fuentes |
pnpm content:test | Ejecuta las comprobaciones rápidas del contenido: esquema y jugadas legales |
pnpm content:typecheck | Comprueba los tipos de las herramientas del contenido |
pnpm content:verify | Contrasta el contenido con Stockfish y la tablebase de Lichess (lento, no está en CI) |
Un hook de pre-commit, que se instala con pnpm install, pasa el linter y el
formateo por los archivos preparados.
| Ruta | Qué es |
|---|---|
/ | Portada: las secciones con una pequeña vista previa animada de cada una |
/openings | El catálogo de aperturas, con filtros y tu progreso en cada una |
/openings/:id | Juega una apertura contra el motor, con su teoría al lado |
/openings/:id/practice | Practica las líneas de esa apertura y encadena una racha en cada una |
/endgames | Los finales que ganar o aguantar, con los superados marcados |
/endgames/:id | Juega un final contra un rival perfecto |
/positions | La galería de posiciones tácticas, con filtros y las que has resuelto |
/positions/:id | Encuentra la mejor jugada en una posición |
/analysis | Un tablero libre para explorar cualquier idea |
/learn | Aprender: los niveles, el glosario, «Practica más» y tu siguiente lección |
/learn/:level | Las lecciones de un nivel, con las completadas marcadas |
/learn/:level/:lesson | Una lección, paso a paso |
/learn/glossary | El glosario, con buscador y filtros por nivel y familia |
/learn/puzzles | «Practica más»: los problemas de Lichess de cada lección |
/learn/puzzles/:lesson | Una tanda de diez problemas de esa lección |
/acerca | Acerca de: qué se guarda, qué sale del navegador, créditos y código fuente |
Detalles que no se ven en la tabla:
/openings/:id/drill redirige a la práctica, y
/glossary lleva al glosario dentro de Aprender.?group=tactics&level=advanced&q=…)./positions/1), de menos a más
jugadas./analysis?fen=…), sus jugadas o
el árbol entero con sus variaciones (&pgn=…). Las otras secciones abren aquí
con un enlace para volver de donde vienes./acerca es la ruta en español en los dos idiomas.src/app/
core/ estado de la partida (chessops), árbol de jugadas y enlaces de análisis,
progreso (IndexedDB), traducciones y carga del contenido
layout/ lo que rodea a cada página: el pie y el relleno de cada tipo de ruta
shared/ componentes de presentación: tablero, minitablero, lista de jugadas,
iconos, aviso
features/ una carpeta por sección, cargadas de forma diferida
content/ fuentes y comprobaciones de las aperturas, los finales, las posiciones,
las lecciones, el glosario y los problemas
El contenido es fijo y se valida antes de llegar a la app: mira content/README.md.
pnpm media # capturas, textos, promos e icono en media/out/
pnpm media:shots --only screen-02 --lang es --no-build # repite una sola captura
pnpm media:readme # regenera .github/readme/
La primera vez hace falta pnpm exec playwright install chromium. Cómo se hacen
las capturas está en media/README.md.
Hecha por Alvaro Torres. Licencia GPL-3.0.