Bonne IA en combat

Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#1
Hello tout le monde ! Je vous présente mon idée d'une bonne IA en combat je vous laisse proposer mieux, dire ce qui est pas bien etc, le but n'est pas de dire "regardez mon idée c'est la meilleur" mais de partager avec vous pour peut être améliorer la mienne (ou la votre? ^^) Je pars sur une base de VB je précise pour le GoTo très utile même si c'est déconseiller à priori :3

Ceci n'est pas un langage de programmation mais seulement la fonction décrite

Je pense que la fonction qui vérif le nombre de PA est assez légère même si on à 50 sorts pour évité de foutre un goto pour passer.

Code:
[For] Pour chacun des sorts dans la liste:
    [IF] nombrePa < coutPaSort [GOTO NEXTSORT]
    [IF] Si entre le nombre de po mini et max du sort:   
   
            [IF] Si c'est un sort sans ligne de vu
            on attaque
            [ELSEIF] Sinon on vérifie si on peut toucher
            si oui on attaque
            [else] Si on ne peut pas toucher
                [WHILE] on simule un mouvement de toutes les cases autour de nous voir si on peut attaquer de là
                en passant chaque dernière case en inaccessible jusqu'à ne plus avoir de case dispo autour de nous
                Dès qu'on peut toucher on bouge & on attaque
                [GOTO NEXTSORT]
                [END WHILE]
            [GOTO NEXTSORT] Si on ne peut pas on passe au sort suivant
            [endIF]
           
    [ELSE]
   
            [WHILE] on simule un mouvement de toutes les cases autour de nous voir si on peut attaquer de là
            en passant chaque dernière case en inaccessible jusqu'à ne plus avoir de case dispo autour de nous
            Dès qu'on peut toucher on bouge & on attaque
            [GOTO NEXTSORT]
            [END WHILE]           
        [GOTO NEXTSORT] Si on ne peut pas on passe au sort suivant
       
    [ENDIF]
   
[NEXTSORT:]
[Next]
 
Inscrit
18 Février 2015
Messages
228
Reactions
7
#2
C'est pas mal mais faudrais rajouter du genre un truc qui permettraient de vérifier si le monstre doit mettre au CaC pour frapper, alors il vérifie es stats donc par exemple s'il a assez de fuite quand il est en dessous de la moitier de sa vie et s'il a assez de tacle pour tacler l'adversaire dans le cas inverse
 
Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#3
C'est pas mal mais faudrais rajouter du genre un truc qui permettraient de vérifier si le monstre doit mettre au CaC pour frapper, alors il vérifie es stats donc par exemple s'il a assez de fuite quand il est en dessous de la moitier de sa vie et s'il a assez de tacle pour tacler l'adversaire dans le cas inverse
En sois j'ai chercher la facilité, que mes bots tapent dès qu'ils peuvent.
Pour savoir si il doit être au CAC il y à la fonction de PO mini & max, si la PO est de 1 il ira au CAC (j'ai fais la liste de TOUT les sorts et un système de priorité ^^).
Ensuite pour les stats je compte le faire dès que j'aurais fini mes combats qui marchent parfaitement et que j'aurais coder les trajets je m'attaquerais aux stats mais pas aux stats d'esquive.

Ils sont aléatoire et une esquive raté fait perdre énormément, je préfère encore utilisé mes sorts par priorité et les bourrés pour être sûr de taper que d'esquiver ^^
Mais je compte travailler sur le calcul de dégât en rapport à la résistance du monstre et qu'il vérifie tout les sorts dans l'ordre de priorité et qu'il tape ceux qui font le plus de dégâts si il peut
(Donc une 2eme liste créer à partir de la 1er en fonction des dégâts max - mini).
 
Inscrit
18 Février 2015
Messages
228
Reactions
7
#4
En sois j'ai chercher la facilité, que mes bots tapent dès qu'ils peuvent.
Pour savoir si il doit être au CAC il y à la fonction de PO mini & max, si la PO est de 1 il ira au CAC (j'ai fais la liste de TOUT les sorts et un système de priorité ^^).
Ensuite pour les stats je compte le faire dès que j'aurais fini mes combats qui marchent parfaitement et que j'aurais coder les trajets je m'attaquerais aux stats mais pas aux stats d'esquive.

Ils sont aléatoire et une esquive raté fait perdre énormément, je préfère encore utilisé mes sorts par priorité et les bourrés pour être sûr de taper que d'esquiver ^^
Mais je compte travailler sur le calcul de dégât en rapport à la résistance du monstre et qu'il vérifie tout les sorts dans l'ordre de priorité et qu'il tape ceux qui font le plus de dégâts si il peut
(Donc une 2eme liste créer à partir de la 1er en fonction des dégâts max - mini).
ça n'était qu'une proposition ^^ après tu en fais ce que tu veux :p ou tu peux coder une IA neuronale XD
 
Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#5
ça n'était qu'une proposition ^^ après tu en fais ce que tu veux :p ou tu peux coder une IA neuronale XD
On va faire comme dans Wolfenstein, foutre un cerveau humain dans le PC pour l'utilisé à calculer et réfléchir auto :')
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#6
Je me suis déjà posé la question, pour moi la meilleure IA est un peu ce que AlphaGo a fait : un algorithme minimax qui s'arrête au bout d'une certaine profondeur en évaluant la position avec un réseau de neurones qui ne prend que "l'état" des personnages (sans les positions) en argument.
 
Inscrit
29 Octobre 2016
Messages
65
Reactions
2
#7
Je me suis déjà posé la question, pour moi la meilleure IA est un peu ce que AlphaGo a fait : un algorithme minimax qui s'arrête au bout d'une certaine profondeur en évaluant la position avec un réseau de neurones qui ne prend que "l'état" des personnages (sans les positions) en argument.
C'est du chinois pour moi :'( mais oui il doit y avoir une bien meilleur IA c'est juste une IA basique que j'ai perso imaginé dans le but de faire jouer mes personnages en harmonie évité les déplacements inutile et optimisé les coups
 
Inscrit
10 Mars 2018
Messages
4
Reactions
0
#8
En tout cas un bravo car moi même je ne saurait reproduire ou crée ça
 
Inscrit
8 Septembre 2017
Messages
36
Reactions
8
#9
Moi personnellement j'ai fait comme sa :
Je boucle chaque case autours du monstre dans la limite du nombre de pm
Je boucle chaque ennemie
Je boucle chaque sort
Je fait un calcule mathématique pour chaque possibilité, je prend en compte : les dégats du sort, distance entre la cellule testé et l'ennemie, le nombre de point de vie, les résistances, si c'est une invocation ou non.

Sa me donne une valeur que je stock dans une classe (infosTargetInfluence) a chaque boucle je regarde si la valeur est supérieur, si oui je la garde, sinon je passe.

Mon Ia est très rapide et trouve toujours la meilleur solution.
 

RedBust

Membre Actif
Inscrit
1 Decembre 2009
Messages
260
Reactions
0
#10
Tiens c'est du jamais tenté à ce que je sache, du machine learning pour les IA des bots Dofus
Ce serait clairement de l'enculage de mouche mais ce serait bien trippant à essayer
 
Haut Bas