Repository navigation
Releases: Dev1Nox/FootballSim
Release list
FootballSim v.2025-26.02.05
v2025-26.02.05
🗂️ Datos de ligas refactorizados: de un JSON monolítico a un fichero por liga
Antes, todos los equipos vivían en un único teams_data.json. Ahora cada liga tiene su propio archivo en assets/:
LaLiga.jsonPremier League.jsonSerie A.jsonBundesliga.jsonLigue 1.jsonBrasileirão Série A.jsonPrimeira Liga.jsonEredivisie.jsonMLS.jsonSaudi Pro League.json
(mundial.json se mantiene aparte, como hasta ahora, para el modo Mundial).
⚙️ Seeder dinámico
DatabaseSeeder ya no busca un nombre de archivo fijo: ahora recorre todos los .json de assets/ (excepto mundial.json) y los siembra uno a uno, con manejo de errores por archivo individual y log del total de equipos sembrados.
Beneficio de cara al futuro: añadir una liga nueva será tan simple como soltar un .json con el mismo formato en assets/ — sin tocar código.
🔼 Room DB v11 → v12
Se sube la versión de la base de datos (con fallbackToDestructiveMigration) para forzar el re-sembrado en las instalaciones existentes y que reciban las ligas y equipos nuevos automáticamente al actualizar.
🧹 Limpieza
Eliminada la carpeta data/models (estaba vacía y sin uso).
Versión completa: 2025-26.02.05
FootballSim v2025-26.02.04
Changelog
v2025-26.02.04
✨ Nuevo
-
Comprobador de actualizaciones (Feature 12)
- Nuevos archivos:
ui/components/UpdateAvailableDialog.kt,util/UpdateChecker.kt. - Al arrancar la app,
MainActivity.ktconsulta si hay una versión más reciente publicada en GitHub Releases. - Si existe, muestra un diálogo con opción de descargar (abre la URL del APK/release) o descartar.
NotificationPreferences.kt: nueva claveSKIPPED_UPDATE_VERSIONpara no volver a mostrar el aviso de una versión ya descartada por el usuario.
- Nuevos archivos:
-
Modo Mundial
simulation/CompetitionSystem.kt: nuevoCompetitionType.MUNDIALcon sus propios multiplicadores (más táctico, más tensión, sin rotación de plantilla, sede neutral).ui/screens/TournamentScreens.ktyui/viewmodels/TournamentViewModel.kt: nueva pantalla/diálogo para crear un Mundial (12 grupos A–L, 48 selecciones, fase de grupos fija → octavos → cuartos → semis → final).- Nuevo archivo de datos
Mundial.jsoncon las selecciones y grupos. ui/screens/ScreensV2.kt: el selector de competición ahora usaavailableCompetitions(dinámico) en vez de mostrar siempreCompetitionSystem.ALL_COMPETITIONS.
🔁 Cambios
-
Banquillo ampliado a 12 jugadores (
simulation/LineupGenerator.kt)- Antes: se cogían los 7 suplentes con mejor puntuación, sin control de posición.
- Ahora: composición fija — 1 portero, 2 centrales, 2 laterales, 3 centrocampistas, 2 extremos, 2 delanteros — rellenando con los mejores restantes si falta gente en alguna posición.
-
Muerte súbita más variada en penaltis (
simulation/PenaltyEngine.kt)- Los 5 primeros lanzadores siguen siendo siempre los 5 mejores rematadores.
- A partir del 6º lanzador, el orden se baraja con
rngen cada tanda, para que la muerte súbita no recaiga siempre en los mismos 2-3 jugadores.
-
Ajustes de UI relacionados
ui/screens/ManagerModeScreen.ktyui/viewmodels/ManagerModeViewModel.kt: adaptados al nuevo sistema de banquillo/decisiones.ui/screens/PenaltyShootoutScreen.kt: adaptación visual a los cambios del motor de penaltis.data/database/DatabaseSeeder.kt: reorganización interna del seeding (sin cambios de comportamiento).
🏷️ Versión
- Número de versión mostrado actualizado a
2025-26.02.04en:ui/screens/ScreensV2.kt(pantalla "Acerca de")ui/screens/SettingsScreen.kt(tarjeta de información)
📁 Archivos modificados (resumen)
MainActivity.kt
data/database/DatabaseSeeder.kt
simulation/CompetitionSystem.kt
simulation/LineupGenerator.kt
simulation/PenaltyEngine.kt
ui/screens/ManagerModeScreen.kt
ui/screens/PenaltyShootoutScreen.kt
ui/screens/ScreensV2.kt
ui/screens/SettingsScreen.kt
ui/screens/TournamentScreens.kt
ui/viewmodels/FootballViewModel.kt
ui/viewmodels/ManagerModeViewModel.kt
ui/viewmodels/TournamentViewModel.kt
util/NotificationPreferences.kt
📁 Archivos nuevos
ui/components/UpdateAvailableDialog.kt
util/UpdateChecker.kt
Mundial.json
FootballSim v.2025-26.02.03
⚽ Football Simulator — Dev1Nox
Simulador de partidos de fútbol con motor probabilístico · v2025-26.02.03
📱 Descripción
App Android que simula partidos entre equipos reales usando estadísticas de rendimiento, distribución de Poisson y simulación Monte Carlo. Cada simulación produce un resultado diferente con goleadores, eventos detallados y estadísticas realistas.
📥 Instalación
- Descarga el APK desde la sección Releases
- En tu Android, ve a Ajustes → Seguridad → Instalar apps desconocidas y actívalo para tu navegador/gestor de archivos
- Abre el APK descargado e instala
- Android 8.0+ requerido
🆕 Novedades — v2025-26.02.03
🏆 Modo Torneo
Organiza tu propio torneo con 4, 8 o 16 equipos y nombre personalizable. Incluye fase de grupos con tabla de clasificación en tiempo real y eliminatorias completas hasta la gran final. Los torneos se guardan y se pueden retomar en cualquier momento.
🥅 Tanda de Penaltis
Desempate automático por penaltis al final de un partido igualado. Se simulan 5 rondas completas y, si persiste el empate, muerte súbita hasta que haya ganador.
🎯 Modo Penaltis Puro
Modo dedicado exclusivamente a tandas de penaltis, accesible desde el menú principal. Tres formatos disponibles: 5 rondas, 3 rondas y muerte súbita pura.
🧑 Modo Carrera
Elige un equipo real y disputa una temporada completa en liga. El sistema genera el calendario de jornadas, calcula la clasificación y lleva el registro de goleadores. Incluye gestión de plantilla entre jornadas y pantalla especial de campeón al ganar la liga.
🤖 Análisis IA Post-Partido
Al terminar cada partido aparece una tarjeta con el análisis generado por IA del encuentro: evaluación del resultado, rendimiento por equipo y momentos clave. Se expande automáticamente al recibir la respuesta.
📊 Comparador de Equipos
Duelo estadístico entre dos equipos: ratings de ataque, defensa y forma en barras comparativas, historial de enfrentamientos anteriores y resumen del equipo con más victorias.
🎬 Replay de Gol
Pulsa sobre cualquier gol del marcador para ver la jugada reconstruida en 4 pasos: recuperación, progresión, remate y celebración. Más de 40 variantes distintas para que ningún gol se cuente igual. Funciona sin conexión.
🔥 Sistema de Rivalidades — El Clásico
La app detecta automáticamente si los dos equipos son rivales históricos y muestra un banner especial con el nombre del derbi. Más de 25 rivalidades incluidas:
| Liga | Derbis |
|---|---|
| España | El Clásico, Derbi Madrileño, Derbi Sevillano, Derbi Vasco |
| Inglaterra | Derbi de Mánchester, Norte de Londres, Merseyside |
| Italia | Derby della Madonnina, Derby della Mole, Derby della Capitale |
| Alemania | Der Klassiker, Revierderby |
| Francia | Le Classique |
| Portugal | O Clássico |
| Argentina | El Superclásico |
| Holanda | De Klassieker |
👤 Créditos
Desarrollado por Dev1Nox
"El fútbol es impredecible. Este simulador también lo es."
# ⚽ Football Simulator — Dev1Nox ### Simulador de partidos de fútbol con motor probabilístico · v2025-26.02.03📱 Descripción
App Android que simula partidos entre equipos reales usando estadísticas de rendimiento, distribución de Poisson y simulación Monte Carlo. Cada simulación produce un resultado diferente con goleadores, eventos detallados y estadísticas realistas.
📥 Instalación
- Descarga el APK desde la sección [Releases]
- En tu Android, ve a Ajustes → Seguridad → Instalar apps desconocidas y actívalo para tu navegador/gestor de archivos
- Abre el APK descargado e instala
- Android 8.0+ requerido
🆕 Novedades — v2025-26.02.03
🏆 Modo Torneo
Organiza tu propio torneo con 4, 8 o 16 equipos y nombre personalizable. Incluye fase de grupos con tabla de clasificación en tiempo real y eliminatorias completas hasta la gran final. Los torneos se guardan y se pueden retomar en cualquier momento.
🥅 Tanda de Penaltis
Desempate automático por penaltis al final de un partido igualado. Se simulan 5 rondas completas y, si persiste el empate, muerte súbita hasta que haya ganador.
🎯 Modo Penaltis Puro
Modo dedicado exclusivamente a tandas de penaltis, accesible desde el menú principal. Tres formatos disponibles: 5 rondas, 3 rondas y muerte súbita pura.
🧑 Modo Carrera
Elige un equipo real y disputa una temporada completa en liga. El sistema genera el calendario de jornadas, calcula la clasificación y lleva el registro de goleadores. Incluye gestión de plantilla entre jornadas y pantalla especial de campeón al ganar la liga.
🤖 Análisis IA Post-Partido
Al terminar cada partido aparece una tarjeta con el análisis generado por IA del encuentro: evaluación del resultado, rendimiento por equipo y momentos clave. Se expande automáticamente al recibir la respuesta.
📊 Comparador de Equipos
Duelo estadístico entre dos equipos: ratings de ataque, defensa y forma en barras comparativas, historial de enfrentamientos anteriores y resumen del equipo con más victorias.
🎬 Replay de Gol
Pulsa sobre cualquier gol del marcador para ver la jugada reconstruida en 4 pasos: recuperación, progresión, remate y celebración. Más de 40 variantes distintas para que ningún gol se cuente igual. Funciona sin conexión.
🔥 Sistema de Rivalidades — El Clásico
La app detecta automáticamente si los dos equipos son rivales históricos y muestra un banner especial con el nombre del derbi. Más de 25 rivalidades incluidas:
| Liga | Derbis |
|---|---|
| España | El Clásico, Derbi Madrileño, Derbi Sevillano, Derbi Vasco |
| Inglaterra | Derbi de Mánchester, Norte de Londres, Merseyside |
| Italia | Derby della Madonnina, Derby della Mole, Derby della Capitale |
| Alemania | Der Klassiker, Revierderby |
| Francia | Le Classique |
| Portugal | O Clássico |
| Argentina | El Superclásico |
| Holanda | De Klassieker |
🎥 Intro Animada del Partido
Antes de cada simulación se muestra una pantalla de presentación con los escudos de ambos equipos acercándose al centro, efecto de choque y aparición del "VS". Duración total: ~2,5 segundos.
🔊 Efectos de Sonido
Sonidos reales en cada momento clave del partido: pitido de inicio, rugido del estadio al marcar, tarjeta amarilla y triple pitido final. Se activan y desactivan desde Ajustes.
🔔 Notificaciones Diarias
Recordatorio diario configurable para que no te olvides de simular el partido del día. Elige la hora desde Ajustes.
📡 Actualización de Ratings en Vivo
Actualiza los ratings de los equipos con datos reales desde internet. Compatible con 10 ligas: Premier League, La Liga, Serie A, Bundesliga, Ligue 1, Champions League, Primeira Liga, Eredivisie, Brasileirão y Championship.
🧑💼 Modo Manager — Partido a Partido
Elige táctica, observa el partido por intervalos y reacciona a los eventos en tiempo real. Al terminar recibes el análisis completo del encuentro.
🌦️ Clima Real
La app obtiene el tiempo actual de tu ubicación y lo aplica a la simulación. La lluvia, la nieve o el viento fuerte reducen los goles esperados y aumentan los errores, igual que en la vida real.
📈 Estadísticas Históricas
Consulta el registro completo de todas tus simulaciones: victorias/empates/derrotas, media de goles, equipo más usado, máximo goleador, racha actual y mejor racha, y gráfico de los últimos 10 resultados.
📤 Importar / Exportar Plantillas
Exporta cualquier equipo personalizado a un archivo JSON para compartirlo o hacer backup, e importa plantillas de otros usuarios directamente desde tu almacenamiento.
⚙️ Pantalla de Ajustes
Panel centralizado para configurar sonido, notificaciones, hora del recordatorio diario, modo oscuro/claro y actualización de ratings.
✅ Requisitos
- Android 8.0 (API 26) o superior
- ~50 MB de espacio libre
- Conexión a internet solo para clima y actualización de ratings (opcional)
📋 Permisos
| Permiso | Para qué se usa |
|---|---|
| Internet | Clima en tiempo real y actualización de ratings |
| Notificaciones | Recordatorio diario del partido (Android 13+) |
👤 Créditos
Desarrollado por Dev1Nox
"El fútbol es impredecible. Este simulador también lo es."
FootballSim v.2025-26.02.02
Changelog — FootballSim
Temporada 2025-26 · Todas las versiones notables están documentadas aquí.
[v2025-26.02.02] — 2026-05-24
FootballSim_v_2025-26_02_02
Hito principal: Sistema completo de Equipos Personalizados — el usuario puede crear, editar, configurar alineación y eliminar sus propios equipos directamente desde la app.
✨ Nuevas funcionalidades
Pantalla CreateCustomTeamScreen (803 líneas — nueva desde cero)
- Formulario completo para crear y editar equipos personalizados.
- Selección de foto personalizada desde la galería del dispositivo (via
ActivityResultContracts.GetContent). - Selector de formación táctica con preview visual interactivo del campo.
- Buscador de jugadores con filtro en tiempo real: busca en todos los equipos de la base de datos para fichar jugadores a tu equipo custom.
- Pantalla de asignación de alineación con drag interactivo: arrastra jugadores a sus posiciones sobre el campo.
- Soporte para modo creación (
editingTeam = null) y modo edición (editingTeam = <Team>), reutilizando el mismo composable.
Tarjeta CustomTeamCardWithSwipe en la lista de equipos
- Los equipos personalizados se muestran con un diseño diferenciado: badge "MI EQUIPO", foto personalizada o emoji
🏟️por defecto. - Swipe izquierda → Editar (fondo azul con icono
Edit). - Swipe derecha → Eliminar (fondo rojo con icono
Delete+ diálogo de confirmación). - Los equipos normales (de datos reales) siguen usando
TeamCardsin cambios.
🗄️ Base de datos (Room) — migración v5 → v6
Entidad Team — 2 nuevas columnas
| Campo | Tipo | Default | Descripción |
|---|---|---|---|
| isCustomTeam | Boolean | false | Marca el equipo como creado por el usuario |
| customPhotoUri | String | "" | URI local de la foto seleccionada desde galería |
- Nuevos callbacks en
ScreensV2:onCreateCustomTeamyonEditCustomTeam(team). - Botón
AddCircleen la barra de equipos para acceder a la creación.
🔧 Internos
- Import de
Teamañadido enMainActivity. - Versión mostrada en UI actualizada:
v2025-26.02.01→v2025-26.02.02.
[v2025-26.02.01] — 2026-05-23
FootballSim_v2025-26_03_01
Versión base de esta rama. Incluye el simulador de partidos, sistema de competición, alineaciones personalizadas, gestión de disponibilidad de jugadores y UI principal con Jetpack Compose.
Incluido en esta versión
- Motor de simulación (
SimulationEngine) con lógica de partido evento a evento. - Sistema de competición (
CompetitionSystem): liga y torneos. - Generador de alineaciones (
LineupGenerator) y manager de disponibilidad (PlayerAvailabilityManager). - Pantalla de alineación personalizada (
CustomLineupScreen). - UI principal con navegación Compose (
Screens,ScreensV2,Components,ComponentsV2). - Base de datos Room v5 con entidades:
Team,Player,Match,Competition,PlayerStatusRecord. - Importación de datos desde JSON (
TeamImporter) y actualización desde API (ApiDataUpdater). - Soporte de logos de equipos (
LogoManager).
FootballSim v2025-26.02.01
v2025-26.02.01
✨ Nuevo
- Editor de alineaciones personalizadas (
CustomLineupScreen): antes de simular puedes asignar manualmente cada jugador a su posición en el campo, cambiar la formación y elegir suplentes, tanto para el equipo local como el visitante. - Botón "Personalizar" en la pantalla principal (junto a "Simular") para acceder al nuevo editor.
- Ver resultado desde el historial: toca cualquier partido del historial para volver a ver su pantalla de resultado completa.
⚡ Mejoras
- Importación parcial de plantillas: el JSON de importación ahora permite enviar solo los campos que quieras actualizar; los datos existentes en la BD se preservan si el campo no viene en el JSON. Soporta la estructura plana (sin clave
"team"anidada). - Nuevos campos en el JSON:
matchesPlayed,starter,injured,summoned,summonedProbpara jugadores;logoUrlpara equipos. - Forzar recarga desde assets: nuevo botón en toolbar para limpiar la BD y reimportar todos los datos originales.
- Reset de plantillas: botón para deseleccionar ambos equipos rápidamente.
- Migrado
collectAsState()→collectAsStateWithLifecycle()en toda la UI (mejor rendimiento en background). - Nombres de posición en español más completos y consistentes; soporte para
RWB,LWB,DM,AM. - Compose BOM actualizado a
2024.09.00.
🗄️ Base de datos
- Versión bumpeada a 5 (migración necesaria).
FootballSim v2025-26.02.00
⚽ FootballSim v2025-26.02.00
Novedades de esta versión
Esta actualización incorpora un sistema de generación de alineaciones completamente renovado que tiene en cuenta la disponibilidad real de cada jugador antes de cada partido:
- Sistema de lesiones — los jugadores lesionados quedan excluidos automáticamente de la convocatoria y la alineación.
- Titular habitual — los jugadores marcados como titulares tienen prioridad máxima al construir el once inicial; los suplentes solo entran si es necesario.
- Probabilidad de convocatoria (
summonedProb) — los jugadores sin convocatoria garantizada pasan por un sorteo ponderado según su forma y rol, añadiendo incertidumbre realista a cada simulación. - PlayerAvailabilityManager — nuevo módulo que resuelve la cadena completa de disponibilidad (lesionado → convocado → probabilidad de convocatoria) antes de generar la alineación.
- LineupGenerator v2 — generador de onces consciente de la formación (4-3-3, 4-4-2, 3-5-2, 4-2-3-1, 5-3-2) que coloca a cada jugador en su posición correcta sobre el campo.
- Datos de plantillas actualizados a la temporada 2025/26 en los 25 clubes y las 5 grandes ligas europeas.
Tecnologías
Kotlin · Jetpack Compose · Room 2.6 · MVVM · Coroutines · Material 3
Requisitos
- Android 8.0+ (API 26)
- ~30 MB de almacenamiento
"El fútbol es impredecible. Este simulador también lo es."