IA_TEST.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from Outils.Moteur_de_jeu import *
  2. from Outils.Moteur_de_jeu.Partie import *
  3. from Outils.IA_alphabeta import *
  4. from Outils.Moteur_de_jeu.Distance import *
  5. from Outils.Moteur_de_jeu.Plateau import *
  6. def fct_eval(plateau, num) :
  7. nIA = plateau.longueur_chemin(num)
  8. n_opponent = plateau.longueur_chemin(1-num)
  9. b_IA = plateau.barrieres_restantes[num]
  10. b_opponent = plateau.barrieres_restantes[1-num]
  11. d = 0
  12. """
  13. if deux_chemins(plateau,num) : c = -4
  14. if deux_chemins (plateau,1-num) : d = 3
  15. if c>3 :
  16. return f(nIA) - f(n_opponent) + g2(b_IA) - g2(b_opponent)
  17. else :
  18. """
  19. return f(nIA) - f(n_opponent) + g2(b_IA) - g2(b_opponent)
  20. def f(n) :
  21. t = [1000000000,1000000,40,38]
  22. a = len(t)
  23. if n< a : return t[n]
  24. else :
  25. return 40-n
  26. def g2(b) :
  27. t = [0.5,0,-0.5,-1,-1.5,-2,-2.5,-3,-3.5,-4,-7]
  28. return t[10-b]
  29. def g(b) :
  30. t = [2,0.9,-0.2,-1.3,-2.4,-3.5,-6,-8,-10,-13,-16]
  31. return t[10-b]+5
  32. joueurA = Humain("Humain")
  33. joueurB = IA_minmax_alpha_beta("MinMax 3+", fct_eval, 3)
  34. Global.partie = Partie(joueurA, joueurB, True, Partie.DOSSIER_STANDARD)
  35. Global.partie.demarrer()