JeuWeb - Crée ton jeu par navigateur
Gestion d'un combat - 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 : Gestion d'un combat (/showthread.php?tid=2145)



Gestion d'un combat - cumu - 16-12-2007

Bonjour,

J'explique la situation, il y a 3 types d'unités.
Type A : est fort contre Type B.
Type B : est fort contre Type C.
Type C : est fort contre Type A.

Pour ne pas corcer la chose, imaginons que chaque type d'unités fassent le meme nombre de dégats... ( on va dire 1 )
Maintenant, vu que Type A est fort contre Type B , disons qu'il fait des dégats critiques envers ce dernier. ( on va dire x2, donc 2 )

J'aimerai savoir comment calculer les combats ?

Exemple 1:
5 Type A contre 5 Type B.
Cela fait 10 contre 5.
Jusque la pas de soucis.

Exemple 2:
1 Type A et 1 Type B contre 1 Type B et 1 Type C.
Je pensais faire dans ce cas qu'une unité attaque une seule cible, la plus faible pour lui.
Cela ferait donc : 4 contre 3.
Dans ce cas quelle unités faire mourrir pour le joueur de gauche ?

Et il y a des exemples plus compliqués, auxquelles je ne sais que faire...


Bref plein de questions sur cette gestion de combat...
Est ce que quelqu'un aurait une façon de gérer ça facilement ?

D'avance merci...


RE: Gestion d'un combat - Sephi-Chan - 16-12-2007

Je vais parler de ce que je compte mettre en place dans Seelies.
  • Lors de la résolution des combats (qui ont lieu à fréquence régulière) d'un territoire, je liste toutes les forces en présence (sans me soucier du camp auquel elles appartiennent) par ordre de rapidité.
  • Pour chacun de ces combattants, je dresse la liste de ses cibles prioritaires (les Seelies de Bois peuvent dresser les bêtes pour leur donner des cibles préférées avec des critères comme la plus rapide, la plus forte, elle peut voler, etc.).
  • Vient ensuite la résolution à proprement parler. Le combattant utilise ses attaques sur la cible (même si deux coups suffisent à tuer sa cible alors que trois attaques sont lancés, le troisième coup est perdu dans la dynamique du combat) qui lui a été assignée.
  • Si la cible principale du combattant est déjà abattue, elle se tourne vers la suivante dans la liste. Si toutes ces cibles sont déjà mortes, elle attaque aléatoirement un ennemi.

Voilà donc ce que je compte faire. Vous pourrez remarquer le schéma un peu particulier ; on a pas de action/réaction. Les combattants n'effectuent pas de riposte (sauf s'ils en ont la capacité spéciale), ils attaquent à tour de rôle.


Sephi-Chan


RE: Gestion d'un combat - Mysterarts - 16-12-2007

Si j'ai bien compris Sephi, tu as comme moi une entrée par unité... Mon système ressemble bcp au tiens...
La question c'est est ce que cumu as aussi une entrée par unité !
Dans ce cas la, il faudra peut être adapté un peu le concept... On peut par exemple passer par une étape où à partir d'une entrée qui indique que le joueur à 6 soldats A, on créé 6 entrées dans une autre table, une par unité, et ensuite faire le système indiqué par Sephi...
Bref, tout repose aussi sur ta structure de table d'unité : peux tu nous la donner ?

Mysterarts


RE: Gestion d'un combat - Sephi-Chan - 16-12-2007

Mysterarts a écrit :Si j'ai bien compris Sephi, tu as comme moi une entrée par unité... Mon système ressemble bcp au tiens...
La question c'est est ce que cumu as aussi une entrée par unité !
Dans ce cas la, il faudra peut être adapté un peu le concept... On peut par exemple passer par une étape où à partir d'une entrée qui indique que le joueur à 6 soldats A, on créé 6 entrées dans une autre table, une par unité, et ensuite faire le système indiqué par Sephi...
Bref, tout repose aussi sur ta structure de table d'unité : peux tu nous la donner ?

Mysterarts
Il est vrai que s'il gère cela par pack, le donne change un peu.
Comme le dit Mysterarts, il faudrait que tu nous donnes ta structure de table.


Sephi-Chan, mais attention, donner c'est donner !


RE: Gestion d'un combat - cumu - 16-12-2007

Merci pour vos réponses ! Smile
Je n'ai pour le moment aucune structure de table ! Je reflechissais justement à comment organiser les combats avant de faire les tables...

L'histoire de la rapidité peut effectivement m'aider à gérer la chose.
Comme l'a dit Sephi-Chan, si je tri d'abord les unités par rapidité, je les fais attaquer ensuite une à une les cibles sur lesquelles elles font le plus de dommages, et il ne devrait plus y avoir de probleme pour la suite...

Par contre je n'ai pas bien compris votre concept de ' entrée par unité '...
Vous avez une table spécialement pour les combats en cours ?...


RE: Gestion d'un combat - cumu - 20-12-2007

Je repost un nouveau soucis, mais cette fois qui est bcq plus simple...

J'ai deux type d'unites
A : attaque 1 , defense 1
B : attaque 1 , defense 2

Lors d'un combat, je calcule total attaque et total defense...
Mais la question que je me pose est comment calculer le nombre de morts ( pour le défenseur, ainsi que pour l'attaquant ) ?

Est ce que celui qui perds, perds toutes ses unités, ou alors je ne sais pas ?...
Merci de votre aide ! ; )


RE: Gestion d'un combat - alfanor - 20-12-2007

J'ai l'impression que tu ne prends pas très au sérieux cette affaire, dans un jeux le système de combat est la chose la plus importante car la principale interaction entre les joueurs qui influent réellement dans les deux camps.

Donc à mon avis ce n'est pas la meilleur méthode de demander aux autres de trouver quelque chose pour toi (sachant qu'ils ne te donneront pas grand chose si ce n'est une aide sur le système que tu proposes), le mieux ce serait que tu cherches vraiment ce que tu VEUX afin de voir par la suite comment le faire. (en gros ne pas raisonner "CODE", mais juste "Ce que je veux pouvoir faire" et ensuite raisonner "CODE" sur ce que tu auras décidé.)

Bien sûr il ne faut pas trop t'emballer non plus avec cette méthode si tu es débutant en programmation, personnellement c'est ce que je fais et ça va très loin par moment (en ce qui concerne le script de combat c'est allé vraiment très très loin et je pense que le serveur va vraiment souffrir lorsqu'il fera les combats, mais bon, il assume Tongue )