In un gioco manageriale online (come Hattrick), voglio simulare le partite tra due squadre.Simulazione di partite sportive nel gioco online
Una squadra è composta da 11 giocatori. Ogni giocatore ha un valore di forza compreso tra 1 e 100. Prendo questi valori di forza dei giocatori difensivi per ogni squadra e calcolando la media. Questa è la qualità difensiva di una squadra. Poi prendo i punti di forza dei giocatori offensivi e ottengo la qualità offensiva.
Per ogni attacco, faccio la seguente:
$offFactor = ($attackerTeam_offensive-$defenderTeam_defensive)/max($attackerTeam_offensive, $defenderTeam_defensive);
$defFactor = ($defenderTeam_defensive-$attackerTeam_offensive)/max($defenderTeam_defensive, $attackerTeam_offensive);
Al momento, non so perché mi dividerlo per quella più alta di entrambi i valori. Ma questa formula dovrebbe darti un fattore per la qualità di attacco e difesa che è necessario in seguito.
Quindi ho annidato le istruzioni condizionali per ogni evento che potrebbe accadere. E.g .: La squadra attaccante ha una possibilità di punteggio?
if ((mt_rand((-10+$offAdditionalFactor-$defAdditionalFactor), 10)/10)+$offFactor >= 0)
{ ... // the attack succeeds
Questi fattori aggiuntivi potrebbero essere valori tattici, ad esempio.
Pensi che sia un buon modo per calcolare un gioco? I miei utenti dicono che non sono soddisfatti della qualità delle simulazioni. Come posso migliorarli? Hai approcci diversi che potrebbero dare risultati migliori? O pensi che il mio approccio sia buono e ho solo bisogno di regolare i valori nelle dichiarazioni condizionali e sperimentare un po '?
Spero che tu possa aiutarmi. Grazie in anticipo!
Che cosa rappresentano esattamente i 10 nei calcoli in questa simulazione? –
E per quanto riguarda la qualità delle simulazioni non sono soddisfatti? –
@Kyle Walsh: i 10 vengono utilizzati solo perché le funzioni mt_rand() accettano solo valori interi. Voglio generare un valore casuale compreso tra -1 (o superiore in base a fattori aggiuntivi) e +1 come valore in virgola mobile. – caw