Tirs au canon de marine

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 !

Pourquoi veux-tu absolument arrondir à l'arrondi supérieur?

Si tu acceptes les virgules, ce sera plus proche de la réalité.

Surtout que parfois à la fin des 96UT, tu tomberas sur 3 possibilité (dans le cas de 2 tirs max avant rechargement)

  • Fin de 1er tir
  • Fin du 2nd tir
  • Fin du rechargement

Donc si tu arrondis, tu ne sauras pas où tu finis.

Avec des virgules, ca prend en compte ca paramètre, et ta formule en colonne J devient plus réaliste.

Pour info, ta méthode de calcul détaillée est fausse car tu prends 2 tirs + recahrge + 2 tirs dans ta séquence

Si tu additionnes tes séquences, tu oublies le rechargement entre les séquences

C'est pourquoi dans mes formules j'ai pris en séquence : tirs + rechargement.

Dans ton exemple, une séquence fait 10 UT, soit 9 séquences complète de 2 tirs = 18 tirs

Il reste 6UT donc assez pour faire 1 tir et il restera encore 2 UT, d'ou 19.2 dans le résultat.

Oui tu as raison, j'ai oublié le rechargement entre les séquences

Je voulais arrondir pour simuler que dans certain cas (autres navires) on ne pourra pas atteindre 96 UT (par exemple dernier tir à 90 UT, et il faut encore recharger à 3 UT pour un tir à 5 UT = 98 UT). Mais j'aurais alors dû arrondir inférieur, je ne sais pas pourquoi j'ai fait sup.

Merci beaucoup pour ton explication, je crois effectivement que c'est la solution. Je vais tester ça et reviendrai te faire un feed-back.

En effet avec l'arrondi inférerieur, tu vois le nombre de tirs complet.

Mais la virgule a son importance car il peut te rester un capital de 1 à 4 UT à la fin de tes 96UT

Si tu arrondi, tu ne prendras pas ce solde en compte.

Testé et approuvé !

Ca marche très bien. Tout était dans la virgule

Merci beaucoup pour ta sagacité et ta réactivité.

Et bravo pour ce site, qui est une vraie mine d'or.

De rien et bon jeu

Rechercher des sujets similaires à "tirs canon marine"