Q_Biland.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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.IA_biland import *
  6. def fct_eval_Biland (plateau,num) :
  7. b_IA = plateau.barrieres_restantes[num]
  8. b_adv = plateau.barrieres_restantes[1-num]
  9. return -evaluation(plateau,b_IA,num) + evaluation(plateau,b_adv,1-num)
  10. def fct_eval(plateau, num) :
  11. nIA = plateau.longueur_chemin(num)
  12. n_opponent = plateau.longueur_chemin(1-num)
  13. b_IA = plateau.barrieres_restantes[num]
  14. b_adv = plateau.barrieres_restantes[1-num]
  15. e = 0
  16. if b_IA < 7 :
  17. e = - evaluation(plateau,b_adv,b_adv,num) + evaluation(plateau,b_IA,b_IA,1-num)
  18. print(e)
  19. if IA_minmax_alpha_beta.dist == None or IA_minmax_alpha_beta.dist > 5 :
  20. return (f(nIA) - f(n_opponent) + g(b_IA) - g(b_adv))/10 + e
  21. """
  22. if deux_chemins(plateau,num) : c = -4
  23. if deux_chemins (plateau,1-num) : d = 3
  24. """
  25. return 10*e + f(nIA) - f(n_opponent) + g2(b_IA) - g2(b_adv)
  26. def f(n) :
  27. t = [1000000000,1000000,40,38]
  28. a = len(t)
  29. if n< a : return t[n]
  30. else :
  31. return 40-n
  32. def g(b) :
  33. t = [6,4,2,0,-2,-4,-6,-8,-10,-12.9,-15.8]
  34. return t[10-b]
  35. def g2(b) :
  36. t = [0.5,0,-0.5,-1,-1.5,-2,-3,-4,-5,-7.9,-10.8]
  37. return t[10-b]
  38. joueurA = Humain("Humain")
  39. joueurB = IA_minmax_alpha_beta("Biland", fct_eval, 2)
  40. Global.partie = Partie(joueurA, joueurB, True, Partie.DOSSIER_STANDARD, True)
  41. Global.partie.demarrer()