12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- from Outils import Arbre
- from Outils.Arbre import *
- from Outils.Moteur_de_jeu import Joueur
- from Outils.Moteur_de_jeu.Joueur import *
- import math
- def distance_bord (position) :
- return (min (position[0], 9-position[0]))
- def lin_tout (plateau, num, cdistance, cbarrieres, cbord) :
- """on considère les coefficients associés à l'importance des barrières/...
- et on les affecte 'linéairement'"""
- b_num = plateau.barrieres_restantes[num]
- b_opp = plateau.barrieres_restantes[1-num]
- distance_num = plateau.longueur_chemin(num)
- distance_opp = plateau.longueur_chemin(1-num)
- dist_bord_num = distance_bord (plateau.pions[num])
- dist_bord_opp = distance_bord (plateau.pions[1-num])
- valeur_dist = cdistance*(distance_opp-distance_num)
- valeur_b = cbarrieres*(b_opp - b_num)
- valeur_bord = cbord*(dist_bord_opp-dist_bord_num)
- v = valeur_dist + valeur_b + valeur_bord
- return (v)
- def lineaire_basique (cdistance, cbarrieres, cbord) :
- return (lambda bn, bo, dn, do, dbn, dbo : cdistance*(do-dn) + cbarrieres*(bo - bn) + cbord*(dbo-dbn))
- def lineaires () :
- fonctions_lineaires = numpy.zeros (1000)
- for i in range (0, 10) : #associé à cdistance = i ici
- for j in range (0, 10) : #associé à cbarrieres = j*j ici
- for k in range (0, 10) : #associé à cbord = sqrt k ici
- l = 100*i + 10*j + k
- fonctions_lineaires[l] = lineaire_basique (i+1, (j+1)*(j+1), math.sqrt(k+1))
- return (fonctions_lineaires)
- """on a 1000 fonctions"""
-
- def expo_basique_coefs_internes (cdistance, cbarrieres, cbord) :
- return (lambda bn, bo, dn, do, dbn, dbo : math.exp(cdistance*do) - math.exp(cdistance*dn) + math.exp(cbarrieres*bo) - math.exp(cbarrieres*bn) + math.exp(cbord*dbo) - math.exp(cbord*dbn))
- def exponentielles_coefs_dans_lexpo () :
- fonctions_expo1 = numpy.zeros (125)
- for i in range (0, 5) :
- for j in range (0, 5) :
- for k in range (0, 5) :
- l = 25*i + 5*j + k
- fonctions_expo1[l] = expo_basique_coefs_internes ((i+1)/2, (j+1), 0.2*(k+1))
- return (fonctions_expo1)
- """on a 125 fonctions"""
- def expo_basique_coefs_doubles (cdistance, cbarrieres, cbord) :
- return (lambda bn, bo, dn, do, dbn, dbo : cdistance*math.exp(cdistance*do) - cdistance*math.exp(cdistance*dn) + cbarrieres*math.exp(cbarrieres*bo) - cbarrieres*math.exp(cbarrieres*bn) + cbord*math.exp(cbord*dbo) - cbord*math.exp(cbord*dbn))
- def exponentielles_coefs_doubles () :
- fonctions_expo2 = numpy.zeros (125)
- for i in range (0, 5) :
- for j in range (0, 5) :
- for k in range (0, 5) :
- l = 25*i + 5*j + k
- fonctions_expo2[l] = expo_basique_coefs_doubles ((i+1)/3, (j+1), 0.15*(k+1))
- return (fonctions_expo2)
- """on a 125 fonctions"""
- #test = lambda x : x*5
- #test2 = lambda x,y : x*5 + y
- #print (test2 (1, 2))
- def lois_en_puissance (cdistance, cbarrieres, cbord) :
- return (lambda bn, bo, dn, do, dbn, dbo : do**cdistance - dn**cdistance + bo**cbarrieres - bn**cbarrieres + dbo**cbord - dbn**cbord)
- def puissances () :
- fonction_puissance1 = numpy.zeros (1000)
- for i in range (0, 10) :
- for j in range (0, 10) :
- for k in range (0, 10) :
- l = 100*i + 10*j + k
- fonctions_puissance1[l] = lois_en_puissance (i, j, k)
- return (fonctions_puissance1)
- """1000 fonctions"""
|