Resultats_stats.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. from Outils.Moteur_de_jeu import *
  2. from Outils.Moteur_de_jeu.Partie import *
  3. from Outils import IA_alphabeta
  4. from Outils.IA_alphabeta import *
  5. from Outils import IA_Stats
  6. from Outils.IA_Stats import *
  7. def fct_eval(plateau, num) :
  8. return plateau.longueur_chemin(1 - num) - plateau.longueur_chemin(num)
  9. def lire_fichier(nom) :
  10. fichier = open(nom,"r")
  11. tab_reussites = []
  12. tab_total = []
  13. l = fichier.readline()
  14. i = l.find("/")
  15. parties_gagnees = int(l[:i])
  16. parties_total = int(l[i+1:])
  17. l = fichier.readline()
  18. while "/" in l :
  19. i = l.find("/")
  20. tab_reussites.append(int(l[:i]))
  21. tab_total.append(int(l[i+1:]))
  22. l = fichier.readline()
  23. fichier.close()
  24. return (tab_reussites, tab_total, parties_gagnees, parties_total)
  25. def ecrire_fichier(nom, tab_reussites, tab_total, parties_gagnees, parties_total) :
  26. fichier = open(nom, "w")
  27. fichier.write(str(parties_gagnees) + "/" + str(parties_total) + "\n")
  28. for i in range(len(tab_reussites)) :
  29. fichier.write(str(tab_reussites[i]) + "/" + str(tab_total[i]) + "\n")
  30. fichier.close()
  31. def confrontation(profondeur) :
  32. joueurA = IA_minmax_alpha_beta("Adjoint",fct_eval,profondeur)
  33. joueurB = IA_stats("Stats", "stats.txt", IA_minmax_alpha_beta("Adjoint",fct_eval,profondeur))
  34. nom_fichier = "Divers/Donnees_stats/" + "resultats_profondeur_" + str(profondeur) + ".txt"
  35. try :
  36. (tab_reussites, tab_total, nombre_victoires, nombre_parties) = lire_fichier(nom_fichier)
  37. except :
  38. (tab_reussites, tab_total, nombre_victoires, nombre_parties) = ([],[],0,0)
  39. i = 0
  40. while True :
  41. joueurB.tab_reussites = []
  42. Global.partie = Partie(joueurA, joueurB, False, "")
  43. gagnant = Global.partie.demarrer()
  44. nombre_parties += 1
  45. i += 1
  46. if gagnant.nom == "Stats" :
  47. nombre_victoires += 1
  48. tab = joueurB.tab_reussites
  49. for n in range(len(tab)) :
  50. try :
  51. tab_total[n] += 1
  52. except :
  53. tab_total.append(1)
  54. tab_reussites.append(0)
  55. if tab[n] :
  56. tab_reussites[n] += 1
  57. print(str(i) + " partie terminée")
  58. ecrire_fichier(nom_fichier, tab_reussites, tab_total, nombre_victoires, nombre_parties)