Bonjour à tous.
J'ai un petit problème insolite à vous soumettre, car je n'arrive pas à trouver la bonne formule. Je me suis demandé si ma question avait sa place ici, ou si je devais m'adresser à un forum de mathématiques, mais bon, je tente ma chance.
Je suis joueur d'un petit jeu de combat naval en PHP sur internet, et ma démarche a pour objectif de classer les navires les plus efficaces par rapport à différents critères (armement, blindage, vitesse, etc...). C'est le critère de l'armement qui me donne des cheveux blancs. Le fichier ci-joint contient un extrait du classement que j'aimerais faire.
Quelques explications :
- le jeu fonctionne sur un "réservoir d'Unité de Temps" (ou "UT"). On dépense ces UT pour faire des actions (par exemple se déplacer d'une case coûte 6 UT). Ce réservoir se recharge en permanence à raison d'1 UT par heure. Le réservoir est plafonné à 24 UT.
- l'efficacité au tir dépend évidemment du calibre (colonne C) et du nombre de canons (colonne B) de ce calibre, mais également du nombre d'UT que prend un tir (colonne F), le nombre de tirs possible avant de recharger (colonne G) et le coût en UT du rechargement lui-même (colonne H).
- Afin de faire un classement plus fin, j'ai pris comme critère la quantité de dégâts totale que ferait un navire sur 4 jours, soit 96 UT. Pour cela, je commence par simuler les dégâts d'UN tir (=calibre * nombre de canons; colonne D). Mais un navire d'un plus petit calibre peut faire plus de dégâts sur la durée si le coût en UT de ses tirs est inférieur et donc s'il peut tirer plus souvent. Il me faut donc savoir COMBIEN de tirs un navire peut faire en 96 UT, en tenant compte des pauses pour recharger.
- Et c'est là que je bloque. J'ai pensé avoir trouvé la bonne formule (Colonne I), mais si je prends un exemple concret (cellule I9 entourée de rouge) indiquant que le Croiseur Edinburgh peut faire 18 tirs en 96 UT, il suffit de prendre une feuille et d'aligner la séquence des tirs pour constater que ce chiffre est faux :
- 1ère séquence de tirs (coûts en UT) : 4 + 4 (2 tirs possibles avant rechargement) + 2 (coût du rechargement) + à nouveau 2 tirs possibles, soit 4 + 4 UT.
- Une séquence complète de 4 tirs avec un chargement au milieu prend donc 18 UT
- Sur 96, nous avons 5 séquences de ce type possible (5 * 18 = 90), soit 5 * 4 tirs = 20 tirs.
- Il reste 6 UT, chargeur vide, on dépense 2 UT pour le chargement et 4 UT pour un tir unique = 96 UT au total.
- Le nombre de tirs pendant ces 96 UT est donc de 20+1 = 21. Et non 18. Ma formule est donc fausse.
Est-ce que quelqu'un a une idée qui soit plus courte que d'aligner des fonctions SI afin de vérifier après chaque tir si les 96 UT sont atteints ? La formule doit évidemment s'adapter à tout changement de variable, que ce soit le coût en UT par tir, le nombre de tirs avant rechargement ou le coût de ce dernier.
Merci d'avance pour vos conseils !