JeuWeb - Crée ton jeu par navigateur
Algorithme de combat : distribution des tirs - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Gameplay, gamedesign (https://jeuweb.org/forumdisplay.php?fid=48)
+--- Sujet : Algorithme de combat : distribution des tirs (/showthread.php?tid=7934)



Algorithme de combat : distribution des tirs - Stubbs - 16-09-2018

Bonjour à tous,

Je planche actuellement sur un algo de combat et je coince lorsqu'il s'agit de distribuer des tirs sur des unités. Le problème est le suivant :

10 unités reçoivent 10 tirs. Comment distribuer ces tirs de manière aléatoire en suivant une courbe gaussienne ? Cela donnerait donc par exemple 2 unités touchées 0 fois, 5 unites touchées 1 fois,  2 unités touchées 2 fois et une unité touchée 3 fois.

Merci d'avance Smile


RE: Algorithme de combat : distribution des tirs - Xenos - 16-09-2018

Salut,

la gaussienne est une modélisation macroscopique, elle émergera simplement d'un choix de cible aléatoire.
Donc, dans ton cas, il suffit que, pour chaque tir, tu choisisses une cible au hasard (équiprobablement), tu la blesse avec le tir, et tu passes au tir suivant qui choisiras aussi une cible au hasard sans lien avec la première cible choisie. A la limite, si le 1er tir a tué l'unité ciblé, tu peux la retirer de la liste des cibles possibles pour les tirs suivants.

De cette manière, naturellement, la gaussienne émergera.


RE: Algorithme de combat : distribution des tirs - Stubbs - 16-09-2018

Merci Xenos pour cette réponse rapide et fort utile !

Mais sachant que je code en JS et utilise donc la fonction Math.random, ne vais-je pas me retrouver avec des tirs équitablement répartis avec un grand nombre de tirs/unités ?

Aussi, toujours avec un très grand nombre de tirs/unités, disons des millions, le temps de calcul deviendra un problème. N'existe t il pas une autre méthode afin de résoudre ce problème ?


RE: Algorithme de combat : distribution des tirs - Xenos - 16-09-2018

Quand tu auras vraiment besoin de millions de calculs, tu aviseras (à mon avis, ça n'arrivera pas et les perfs de JS sont de toutes façon suffisante pour gérer ce genre d'ordre de grandeur).

Non, tu auras bien une loi normale pour la probabilité de recevoir N tirs sur une unité. La majorité des unités recevront un nombre de tirs égal (sommet de la cloche) mais des unités pourront ne recevoir aucun tir (ou tous les tirs). C'est une question de proba. Tu n'auras pas, à chaque combat, les "exactes" valeurs de la cloche de gauss, mais tu auras des chances de l'approcher (sommairement résumé, parce que je n'ai pas envie de faire un cours de proba un Dimanche aprem).

Ce qui m'inquiète le plus, c'est de tirer les unités-cible en JS... coté client?! Donc trichable?! :\


RE: Algorithme de combat : distribution des tirs - Stubbs - 16-09-2018

Oh bien entendu ! C'était surtout pour le côté didactique de la chose. Vais déjà faire des tests pour commencer.

Je n'en demandais pas autant, merci pour ton temps.

Côté serveur avec Node !


RE: Algorithme de combat : distribution des tirs - Ter Rowan - 17-09-2018

(16-09-2018, 01:20 PM)Xenos a écrit : A la limite, si le 1er tir a tué l'unité ciblé, tu peux la retirer de la liste des cibles possibles pour les tirs suivants.

Je suis en désaccord complet !!

Lors d'une salve, les balles partent, et point barre

Si 10 gus debout lors du "ciblage" les 10 gus ont une chance de se prendre toutes les balles, même si la première leur explose la tête

donc on élimine pas un mort de la liste des cibles possibles (du moins pour un 'round' de tir)


sinon d'accord avec X


RE: Algorithme de combat : distribution des tirs - Xenos - 17-09-2018

D'accord avec Ter Rowan qui n'est pas d'accord avec moi =P C'est juste une question de comment le gameplay s'articule (si tout le monde tir vraiment en même temps, on ne vire pas les morts, mais si chacun tire l'un après l'autre, on peut les virer)