Juego de navegador · béisbol
Invicto
Arma un equipo de 12 jugadores con las plantillas reales del Clásico Mundial de Béisbol, de 2006 a 2026, y simula el torneo.
- Rol
- Período
- Stack
- Enlaces
En números
3,175
registros de jugador por edición: 2,524 jugadores, 23 países, 6 ediciones
20,000
torneos simulados por equipo en la prueba de dificultad
4
idiomas: español, inglés, japonés y coreano
31.6 KB
de JavaScript comprimido con gzip, sin framework de interfaz
Al hacer el build
- Dos fuentes públicas Las páginas de rosters de Wikipedia de 6 ediciones y la base de datos SABR Lahman.
- scripts
/build-data.ts Combina y valida los registros, conservando la URL de cada fuente y la hora de descarga. Si una página devuelve menos de 16 equipos, el build se detiene. - 3,175 registros Uno por jugador y edición: 2,524 jugadores de 23 países.
En el navegador
- Draft Arma un lineup de 12 jugadores.
- Rating del equipo Una media de potencias con p = -4 combina contacto, poder, velocidad, defensa, clutch y pitcheo. Una categoría débil limita todo el lineup.
- Torneo Cada tirada usa rngFor(seed, ...path), así el reto diario reproduce las mismas tiradas sin depender del orden de las llamadas.
La idea
Invicto convierte el Clásico Mundial de Béisbol en un reto de siete juegos. Cada tirada te asigna un país y una edición para llenar uno de los 12 puestos de tu equipo, entre los seis Clásicos de 2006 a 2026. Después, trata de terminar 7-0.
Lo que construí
Un proceso de datos combina las plantillas de Wikipedia y la base SABR Lahman en 3,175 registros de jugador por edición. Cada registro conserva la URL de su fuente y la fecha y hora de consulta. La compilación se detiene si una página devuelve menos de 16 equipos. Los datos también permiten detectar automáticamente a quienes batean y lanzan.
La fuerza del equipo usa una media de potencias con exponente -4 sobre contacto, poder, velocidad, defensa, clutch y pitcheo. Así, una categoría débil afecta al equipo completo. El juego está en español, inglés, japonés y coreano. El mismo Worker de Cloudflare usa D1 para registrar estadísticas diarias anónimas, contar una sola vez los resultados duplicados y no guardar IPs ni cookies.
Retos técnicos
-
Datos públicos imperfectos
Las plantillas, nombres, posiciones y estadísticas llegan en formatos distintos. El proceso los une, valida cada registro y conserva la fuente de cada fila. Si un registro tiene un error, puedo rastrearlo hasta la página original.
-
Que terminar 7-0 cueste
Un equipo fuerte debe tener ventaja y aun así enfrentar un torneo difícil. Una prueba Monte Carlo simula 20,000 torneos por equipo. Un equipo de élite debe terminar 7-0 entre 2% y 5% de las veces; una sola categoría débil debe bajar esa probabilidad a menos de 2%.
-
Las mismas tiradas en el reto diario
Cada decisión al azar usa una secuencia identificada por la semilla y una ruta de etiquetas. Todos reciben las mismas tiradas en el reto diario, sin importar el orden en que las revelen. Recargar la pestaña permite continuar la misma partida.
Antes y después
| Antes | Después | Fuente | |
|---|---|---|---|
| Primera pantalla con una conexión lenta | La pantalla de inicio esperaba 1.33 MB de datos de plantillas. | La pantalla de inicio aparece primero y los datos se cargan al empezar una partida. | Commit 465db25, 2 de septiembre de 2026 |
Lo próximo
Actualizar las plantillas después del próximo Clásico.
Pruébalo
Enfoques compartidos
Usar semillas para poder repetir una partida
SWARMGEDDON, Flawless, The Veil · El Velo, Conuco, Coherente, Este sitio
Ajustar la dificultad con simulaciones
Flawless, The Veil · El Velo, Coherente, SWARMGEDDON
Probar con entornos y datos reales
Mantener el español y el inglés al día
Proteger el progreso guardado
Conuco, Coherente, SWARMGEDDON, El Corre Corre