JeuWeb - Crée ton jeu par navigateur
["Ogame-like"] Algorithme de combat (eh oui, encore un...) - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : ["Ogame-like"] Algorithme de combat (eh oui, encore un...) (/showthread.php?tid=2798)

Pages : 1 2


RE: ["Ogame-like"] Algorithme de combat (eh oui, encore un...) - Cartman34 - 31-07-2008

Des scripts immenses...240 lignes...c'est plutot léger !
Mais ce n'est pas très facile à coder.


RE: ["Ogame-like"] Algorithme de combat (eh oui, encore un...) - hsaturn - 06-03-2009

Je ne sais pas comment tu as fais, mais à priori, il ne faut pas faire un algorithme qui traite vaisseau par vaisseau, mais l'intégralité des vaisseaux.
En deux mots, tu ne dis pas tel vaisseau attaque puis tel autre etc, mais
1 - Ma force totale d'attaque est X
2 - La force de defense est Y
3 - Je provoque donc X-Y dégats à la flotte defensive.
Si X-Y est négatif, alors l'attaquant détruit des vaisseaux : lesquels.
C'est la que jouent les statistiques, mais avant, peut-être que toute la flotte est détruite.

On va dire que la flotte defensive possède un bouclier de 10 000, et qu'elle possède 15 000 points de vie.
Elle doit donc encaisser au moins 10 000 pts d'attaque pour commencer à être détruite.
A partir de 10 000 points d'attaque, on entame les 15 000 points de vie (les vaisseaux eux-meme).

Si l'attaque a été de 12 000, alors il faut supprimer l'équivalent de 10 000 (absorbés par le bouclier) moins 12 000 (attaque)

Donc, il faut supprimer 2 000 points sous forme de vaisseau. (ouf).

Les stats entre en jeux
La flotte attaquante possède des caractéristiques d'attaque.
La flotte défensive possède des caractéristiques de défense.

Il faut donc déterminer le pourcentage de flotte à détruire en pourcentage en fonction des deux flottes.

Par exemple la flotte attaquante est composée de vaisseaux A B C D
La flotte défensive est composée de vaisseaux A B C X
X est très résistant contre A B C, moins contre D
A est très résistant contre A B, mais pas contre C D
C a un super bouclier contre tout
D est faible
etc....
Tu as donc lors d'une attaque un calcul de stats à effectuer qui donne :
Si A B C D attaque A B C X
Alors pour 100% de vaisseau qu'elle détruirait il y aurait
19% de X (résistants)
31% de A
12% de C
38% de D

Tu appliques ce pourcentage aux 2000 points et ça te donne un nombre de vaisseaux détruits.

Si la flotte attaquante peux attaquer en plusieurs vagues, il suffit de boucler.

Voila c'est compliqué en apparence, mais c'est un algorithme très efficace, puisqu'il calcule en une seule passe (dans le cas présent 4 multiplications) le nombre de vaisseaux détruits.

Imagine pour 10 000 000 de vaisseaux, c'est immédiat.

Ciaoo