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