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.