Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Simulador deportivo

Buenas a todos.
Estoy intentando programar un simulador de partido de futbol, y me he encontrado con el siguiente problema.

Supongamos q hay dos equipos A y B. Para cada minuto del partido, Hay un 10% de probabilidad de que A tenga una chance de gol, y un 25% de que la chance sea aprovechada.
Lo mismo para B, con 20% de tener chance y 40% de anotarla.

¿Cual es la forma mas conveniente de simular y obtener un resultado de acuerdo a un numero aleatorio generado? Supongamos que obtengo un random entre 0 y 100. Es facil decir:

if (random<10)
//Chance de gol para A;
else if (random>10&&random<(10+20))
//Chance para B;

El problema es que dentro de "Chance para A" hay cierta probabilidad de que sea gol. Y quizas la cadena de eventos sea mas larga, por ejemplo si es gol para A, hay un 35% de chances de que sea de cabeza, 5% de tiro libre, etc.
Entonces ese método de generar un random y "mapearlo" para ver en que zona cae es ineficiente y dificil de implementar.

Seguramente el método les pareza absurdo a algunos, pero es lo que se me ha ocurrido. No soy muy experiente con la programacion. ¿Como deberia trabajar el simulador con el "seed" aleatorio que recibe, para decidir que tipo de evento devuelve, segun cierta tabla de probabilidades?

Gracias a todos

noviembre 8, 2015 | Registered Commenternacional100

Hola,

Yo creo que vas por el buen camino: No soy un experto en juegos de simulación, pero hasta donde yo se, casi todos funcionan con simulaciones estadísticas; es decir, generando números aleatorios y analizando el resultado.
Podrías por ejemplo, calcular otro número aleatorio dentro de "chance para A". Y analizarlo de nuevo. Suele ser habitual, que para calcular el número aleatorio, o los límites que definen que ha pasado(cabeza, penalti, desde fuera del area..), se utilicen modificadores: Esto es; si lso jugadores del equipo A, tiene una altura media de 1,90, la probabilidad de hacer gol de cabeza sube un 1%. Si el otro equipo tiene cansancio acumulado... Cualquier cosa que se te ocurra. Esto hará que tu algoritmo sea mas complicado de programar; eso si, el juego gana realismo y diversión.

Saludos, No se si te servirá d ealgo :)

Oldskultxo

noviembre 9, 2015 | Registered Commenteroldskultxo