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 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Juego legendario
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Fantasy de ajedrez basado en los Campeonatos de Gipuzkoa Individual (Reglamento V3.1 adjunto en el proyecto original). Cada manager forma una plantilla de 6 jugadores, gana puntos según resultados y Elo del rival, y gestiona un mercado semanal con fichajes, ofertas y clausulazos. • Next.js 14 (App Router) + TypeScript + Tailwind CSS • Supabase (Postgres + Auth + Row Level Security) • Vercel para el despliegue • Pensado como web responsive, instalable como PWA Cómo se ha traducido el reglamento a datos查看完整 README ↗
Fantasy de ajedrez basado en los Campeonatos de Gipuzkoa Individual (Reglamento V3.1 adjunto en el proyecto original). Cada manager forma una plantilla de 6 jugadores, gana puntos según resultados y Elo del rival, y gestiona un mercado semanal con fichajes, ofertas y clausulazos.
app/
(dashboard)/
layout.tsx # navegación por pestañas + toggle de tema
plantilla/ # pestaña "Mi plantilla"
mercado/ # pestaña "Mercado"
clasificacion/ # pestaña "Clasificación"
layout.tsx # layout raíz (metadata, PWA manifest)
page.tsx # redirige a /plantilla
components/ # componentes de UI (PlayerCard, TabNav, ThemeToggle...)
lib/
types.ts # tipos de dominio (Jugador, PlantillaSlot, ...)
gameConfig.ts # valores por defecto del reglamento (ver más abajo)
mockData.ts # datos de ejemplo para desarrollar sin backend
supabase/
client.ts # cliente de Supabase para componentes "use client"
server.ts # cliente de Supabase para Server Components
supabase/
migrations/0001_init.sql # esquema completo de la base de datos
players: jugadores reales de ajedrez (nombre, club, categoría, Elo, valor de mercado).matchdays: jornadas del campeonato.results: resultado de cada jugador en cada jornada + puntos Fantasy ya calculados.fantasy_teams / squad_slots: equipos de los managers y su plantilla (con historial de altas/bajas).matchday_captains: el "Jugador de la Jornada" elegido por cada equipo.market_listings / bids: mercado y pujas activas.clause_releases: clausulazos ejecutados entre managers.operations_log: registro de fichajes/ventas/ofertas/clausulazos, para poder aplicar el límite de operaciones por periodo.game_config: aquí es donde vive todo lo que la organización puede querer ajustar sin tocar código (tabla de puntos por diferencia de Elo, presupuesto inicial, límite de operaciones, etc.). De momento en lib/gameConfig.ts hay unos valores por defecto en código; el siguiente paso natural es moverlos a esta tabla y construir una pantalla de administración simple para el rol root.Este esquema es un punto de partida para poder empezar a construir ya; seguramente habrá que ajustar cosas (sobre todo las políticas de RLS) según vayamos avanzando.
El valor de un jugador cambia de dos formas, ambas con histórico en
player_value_history (es lo que pinta la gráfica de la ficha):
cambio % = K x (resultado - E)
con E = 1/(1+10^((Elo rival - Elo jugador)/400)) y K = 4 %. Un Elo de 0 se
trata como 1400. Corregir o borrar un resultado deshace su cambio.variacion_diaria_valores(), pg_cron): +-0,1 % a +-1,5 %, con un
sesgo hacia el valor de fórmula (calcular_valor_inicial) para que no derive.Suelo: valor_inicial.valor_min (10 M). Parámetros en game_config, clave
variacion_valor. La migración no programa el cron: ver el final de
0041_variacion_valor_mercado.sql (conviene lanzarlo unos minutos después de
procesar_mercado_diario).
pujas_del_mercado(liga)./managers/[id] (id = equipo) enseña el nombre de usuario, "manager desde",
ligas ganadas y jugadas, puntos, mejor jornada y la evolución del valor de la
plantilla. Se abre desde la clasificación (nombre del equipo) y desde "Mi
perfil" en la cabecera. Solo entre managers de la misma liga.profiles.ligas_ganadas (0 para todos) se sube a mano al terminar una liga:
update profiles set ligas_ganadas = ligas_ganadas + 1 where id = '...';nombre_manager.Instalar dependencias
npm install
Crear un proyecto en supabase.com y copiar
.env.example a .env.local, rellenando con la URL y la anon key del
proyecto (Project Settings → API).
Aplicar el esquema de base de datos. Con la CLI de Supabase instalada y logueada:
supabase link --project-ref TU_PROJECT_REF
supabase db push
(Alternativamente, se puede pegar el contenido de
supabase/migrations/0001_init.sql directamente en el SQL Editor del
panel de Supabase.)
Arrancar en local
npm run dev
Abrir http://localhost:3000 — redirige a /plantilla, que de momento
muestra datos de ejemplo (lib/mockData.ts) hasta que conectemos las
páginas a Supabase de verdad.
Desplegar en Vercel: importar el repo de GitHub en
vercel.com/new y añadir las mismas variables
de entorno de .env.local en la configuración del proyecto.
plantilla/, mercado/ y clasificacion/ a Supabase (quitar mockData.ts).fantasy_team al registrarse.gameConfig.ts a la tabla game_config + pantalla de administración para el rol root.results.puntos_fantasy a partir de la diferencia de Elo y el resultado).public/icons/ y activar next-pwa (o similar) para que sea instalable de verdad.0001_init.sql antes de ir a producción.Modo claro/oscuro ya implementado (ThemeToggle, clases dark: de
Tailwind). La paleta de tailwind.config.ts es solo un punto de
partida (verde tablero + neutros) — pendiente de una pasada de diseño
visual más cuidada cuando toque esa fase.