Q_anti_raphael.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. """
  11. if deux_chemins(plateau,num) : c = -4
  12. if deux_chemins (plateau,1-num) : d = 3
  13. """
  14. return f(nIA) - f(n_opponent) + g2(b_IA) - g2(b_opponent)
  15. def f(n) :
  16. t = [1000000000,1000000,40,38]
  17. a = len(t)
  18. if n< a : return t[n]
  19. else :
  20. return 40-n
  21. def g(b) :
  22. t = [1,0,-1,-2,-3,-4,-6,-8,-10,-13,-16]
  23. return t[10-b]
  24. def g2(b) :
  25. t = [0.1,0,-0.1,-0.2,-0.3,-0.4,-0.5,-0.6,-3.5,-6,-9]
  26. return t[10-b]
  27. joueurA = Humain("Humain")
  28. joueurB = IA_minmax_alpha_beta("AntiRaphael", fct_eval, 3) # /!\ Pas d'accent à Raphael
  29. Global.partie = Partie(joueurA, joueurB, True, Partie.DOSSIER_STANDARD)
  30. Global.partie.demarrer()