En un juego de manager en línea (como Hattrick), quiero simular partidos entre dos equipos.Simulando partidos deportivos en el juego en línea
Un equipo consta de 11 jugadores. Cada jugador tiene un valor de fuerza entre 1 y 100. Tomo estos valores de fuerza de los jugadores defensivos para cada equipo y calculo el promedio. Esa es la calidad defensiva de un equipo. Luego tomo las fortalezas de los jugadores ofensivos y obtengo la calidad ofensiva.
Para cada ataque, hago lo siguiente:
$offFactor = ($attackerTeam_offensive-$defenderTeam_defensive)/max($attackerTeam_offensive, $defenderTeam_defensive);
$defFactor = ($defenderTeam_defensive-$attackerTeam_offensive)/max($defenderTeam_defensive, $attackerTeam_offensive);
Por el momento, no sé por qué lo divido por el mayor uno de los dos valores. Pero esta fórmula debería darle un factor para la calidad de la ofensa y defensa que se necesita más adelante.
Luego he anidado declaraciones condicionales para cada evento que podría suceder. P.g .: ¿El equipo atacante tiene una oportunidad de gol?
if ((mt_rand((-10+$offAdditionalFactor-$defAdditionalFactor), 10)/10)+$offFactor >= 0)
{ ... // the attack succeeds
Estos factores adicionales pueden ser valores tácticos, por ejemplo.
¿Crees que esta es una buena forma de calcular un juego? Mis usuarios dicen que no están satisfechos con la calidad de las simulaciones. ¿Cómo puedo mejorarlos? ¿Tiene diferentes enfoques que podrían dar mejores resultados? ¿O crees que mi enfoque es bueno y solo necesito ajustar los valores en las declaraciones condicionales y experimentar un poco?
Espero que me puedan ayudar. ¡Gracias por adelantado!
¿Qué representan los 10 en los cálculos específicamente en esta simulación? –
¿Qué pasa con la calidad de las simulaciones con las que no están satisfechas? –
@Kyle Walsh: Los 10 solo se usan porque las funciones mt_rand() solo toman valores enteros. Quiero generar un valor aleatorio entre -1 (o superior dependiendo de factores adicionales) y +1 como valor de coma flotante. – caw