Q_HumainVsAlphaBeta3+.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  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. def fct_eval(plateau, num) :
  6. nIA = plateau.longueur_chemin(num)
  7. n_opponent = plateau.longueur_chemin(1-num)
  8. b_IA = plateau.barrieres_restantes[num]
  9. b_opponent = plateau.barrieres_restantes[1-num]
  10. if IA_minmax_alpha_beta.dist == None or IA_minmax_alpha_beta.dist > 5 :
  11. return f(nIA) - f(n_opponent) + g(b_IA) - g(b_opponent)
  12. return f(nIA) - f(n_opponent) + g2(b_IA) - g2(b_opponent)
  13. def f(n) :
  14. t = [1000000000,1000000,40,38]
  15. a = len(t)
  16. if n< a : return t[n]
  17. else :
  18. return 40-n
  19. def g(b) :
  20. t = [6,4,2,0,-2,-4,-6,-8,-10,-12.9,-15.8]
  21. return t[10-b]
  22. def g2(b) :
  23. t = [0.5,0,-0.5,-1,-1.5,-2,-3,-4,-5,-7.9,-10.8]
  24. return t[10-b]
  25. joueurA = Humain("Humain")
  26. joueurB = IA_minmax_alpha_beta("AlphaBeta 3+", fct_eval, 3)
  27. Global.partie = Partie(joueurA, joueurB, True, Partie.DOSSIER_STANDARD)
  28. Global.partie.demarrer()