123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- from Outils.Arbre import *
- from Outils.Moteur_de_jeu import Joueur
- from Outils.Moteur_de_jeu.Joueur import *
- from random import shuffle
- class IA_minmax(Joueur) :
- def __init__(self, nom, fct_eval, prof) :
- """
- la fonction d'évaluation sera donnée en entrée, et évaluera les positions.
- prof est la profondeur
- """
- Joueur.__init__(self,"O",nom)
- self.fct_eval = fct_eval
- self.prof = prof
-
- def calculer_coup( self, plateau, liste_coup) :
- #1. : avoir l'arbre
- #2. : calculer le coup
- #3 : le ressortir (trouver son indexation dans la liste des coups)
- #etape 1
- arb = Arbre (self.fct_eval, plateau, self.num, 0, self.prof)
- #etape 2
- t = arb.fils
- l=[]
- maxi = t[0][1].valeur
- for i in range(len(t)) :
- l.append (t[i][1].valeur)
- if t[i][1].valeur >= maxi :
- maxi = t[i][1].valeur
- liste_coups = []
- for i in range(len(t)) :
- if t[i][1].valeur == maxi :
- liste_coups.append(t[i][0])
-
- shuffle(liste_coups)
- coup = liste_coups[0]
- for i in range(len(liste_coup)) :
- if liste_coup[i] == coup :
- return i
|