## Fichier : GeneticMatch.py # Auteur : Jovian Hersemeule # Exécute des matchs # à des fins statistiques. from Outils.Moteur_de_jeu import * from Outils.Moteur_de_jeu.Partie import * #from Outils import IA_MinMax #from Outils.IA_MinMax import * from Outils import IA_alphabeta from Outils.IA_alphabeta import * from ReseauNeurones import * from ReseauNeurones.cerveau import * #from Eval_v1 import fct_eval as fct1 #from Eval_v2 import fct_eval as fct2 from Eval_v3 import fct_eval as fct3 fct_eval = [(lambda x, y : 0), (lambda x, y : 0), fct3] # Paramètres nom_session = "PurAleatoireFast2" incr = 1 id_eval = 3 prof = 1 debug = False # Annonce print("Ajuster les paramètres puis lancer write_stats()") print("string: nom_session > nom de la session génétique à éprouver") print("int: incr > l'écart entre chaque génération") print("int: id_eval > heuristique utilisée pour l'aplhabeta de référence") print("int: prof > profondeur du MinMax de référence") print("bool: debug > permet d'avoir des retours dans le log" # Fonction de stats def write_stats(): """ Ecrit les statistiques d'une session génétique. """ # Joueur de référence joueurRef = IA_minmax_alpha_beta("AlphaBeta-p" + str(prof)"-ev"+str(id_eval), fct_eval[id_eval], prof) # Ouverture du flux result_stream = open("ReseauNeurones/" + nom_session + "-VS-" joueurRef.nom + ".txt", "w") # Chargement d'un réseau myBrain = Cerveau() myBrain.charger_structure( "PrimitifEfficace.stc", debug = debug ) myBrain.charger_poids( "PurAleatoireFast2/Generation50/individu0.pds", debug = debug ) myBrain.build_network( debug = debug ) # Match joueurA = IA_minmax("Genetic:Primitif", myBrain.fct_eval, 1 ) joueurB = Humain("Humain") Global.partie = Partie(joueurA, joueurB, True, "") vainqueur = Global.partie.demarrer() # TODO : boucle etc ...