04-03-2019, 10:45 AM
Une autre approche pour la chance, moins aléatoire (car là, si tu as "pas de bol", un mec d'attaque 10 contre un mec défense 1 peut ne jamais marquer) consiste à faire le ratio des deux stats, et à appliquer l'aléatoire sur ce ratio.
ie: nb de buts marqués = (attaque / (défense + 1))*RAND(0.5 à 2) => un attaque 10 vs défense 1 marquera entre (10 / 2)*0.5 = 2.5 buts et (10 / 2)*2 = 10 buts (après, tu arrondis hein!)
Et une autre approche pour l'ensemble de l'algo consiste à le poser en équations plutôt qu'en "tours" (là, j'ai l'impression que ce sont des "tours" de jeu qu'on a).
Par exemple:
Buts du joueur = pow((attaque joueur + 1) / (défense adversaire + 1), tanh(2*(endurance joueur - endurance défenseur)) + 1)
L'idée est alors de poser un modèle global, définissant le résultat de la simulation. On peut alors faire de l'analyse mathématique dessus, et savoir comment le jeu se comportera quand l'attaquant a 2, 3, 100 fois plus d'endurance que le défenseur, ou quand les deux sont à égalité, etc. Ca donne plus de "maîtrise" à mon sens sur l'impact de chaque paramètre du jeu (ici, les paramètres sont les "+1", le facteur 2 dans la tanh, et les fonctions pow, tanh et division utilisées). Sinon, avec l'autre approche, maîtriser (équilibrer) le gameplay t'obligera à faire des simulations en masse (ça peut se faire aussi hein, et avec ce second modèle également).
Note qu'on peut poser d'autres équations pour d'autres caractéristiques du match:
Gain en endurance du joueur = 2*max(1, 1 - exp(endurance du joueur avant le match - endurance de l'adversaire avant le match))
(Note qu'elle ne peut que croître!)
Ou encore
attaque du joueur après match = (attaque du joueur avant le match + défense de l'adversaire avant le match)/2
(Note qu'elle peut donc décroître si j'affronte des faibles! ça pousse à affronter des forts)
Pour le reste, je suis d'accord: la problématique est très générale, et sera donc répondue de manière très générale.
ie: nb de buts marqués = (attaque / (défense + 1))*RAND(0.5 à 2) => un attaque 10 vs défense 1 marquera entre (10 / 2)*0.5 = 2.5 buts et (10 / 2)*2 = 10 buts (après, tu arrondis hein!)
Et une autre approche pour l'ensemble de l'algo consiste à le poser en équations plutôt qu'en "tours" (là, j'ai l'impression que ce sont des "tours" de jeu qu'on a).
Par exemple:
Buts du joueur = pow((attaque joueur + 1) / (défense adversaire + 1), tanh(2*(endurance joueur - endurance défenseur)) + 1)
L'idée est alors de poser un modèle global, définissant le résultat de la simulation. On peut alors faire de l'analyse mathématique dessus, et savoir comment le jeu se comportera quand l'attaquant a 2, 3, 100 fois plus d'endurance que le défenseur, ou quand les deux sont à égalité, etc. Ca donne plus de "maîtrise" à mon sens sur l'impact de chaque paramètre du jeu (ici, les paramètres sont les "+1", le facteur 2 dans la tanh, et les fonctions pow, tanh et division utilisées). Sinon, avec l'autre approche, maîtriser (équilibrer) le gameplay t'obligera à faire des simulations en masse (ça peut se faire aussi hein, et avec ce second modèle également).
Note qu'on peut poser d'autres équations pour d'autres caractéristiques du match:
Gain en endurance du joueur = 2*max(1, 1 - exp(endurance du joueur avant le match - endurance de l'adversaire avant le match))
(Note qu'elle ne peut que croître!)
Ou encore
attaque du joueur après match = (attaque du joueur avant le match + défense de l'adversaire avant le match)/2
(Note qu'elle peut donc décroître si j'affronte des faibles! ça pousse à affronter des forts)
Pour le reste, je suis d'accord: la problématique est très générale, et sera donc répondue de manière très générale.