IA_biland.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. from Outils.Arbre import *
  2. from Outils.Moteur_de_jeu import Joueur
  3. from Outils.Moteur_de_jeu.Joueur import *
  4. from Outils.Moteur_de_jeu.Plateau import *
  5. from Outils.Moteur_de_jeu.Coup import *
  6. from random import shuffle
  7. def evaluation (plateau,n,premier,num) :
  8. chemin = plateau.chemin(num)
  9. t = plateau.pourri_chemin(chemin)
  10. for k in t :
  11. if not plateau.barriere_possible(k):
  12. suppr(t,k)
  13. if chemin == [] :
  14. print("il y a eu des erreurs")
  15. return -10**100
  16. if t == [] or n==0 :
  17. return len(chemin)
  18. #elif n == premier :
  19. # l = []
  20. # for bar in t :
  21. # coup = Coup("B",barriere = bar)
  22. # plateau.executer_coup(coup)
  23. # l.append(evaluation(plateau,n-1,premier,num))
  24. #
  25. # suppr(plateau.liste_barrieres , bar)
  26. #
  27. #
  28. # return(max(l))
  29. else :
  30. l = []
  31. n2 = plateau.longueur_chemin(num)
  32. n3 = plateau.longueur_chemin(1-num)
  33. for bar in t :
  34. coup = Coup("B",barriere = bar)
  35. plateau.executer_coup(coup)
  36. n1 = plateau.longueur_chemin(num)
  37. n4 = plateau.longueur_chemin(1-num)
  38. l.append(n1-n2-n3+n4)
  39. suppr(plateau.liste_barrieres , bar)
  40. k = max(l)
  41. for i in range (len(l)) :
  42. if l[i] == k:
  43. coup = Coup("B",barriere = t[i])
  44. plateau.executer_coup(coup)
  45. return(evaluation(plateau,n-1,premier,num))