Commit "Bug" Arthur Boivert
This commit is contained in:
parent
2716b3bc1f
commit
4e7032bd12
|
@ -157,51 +157,56 @@ def majPotentielsCroissance(pixelsCroissance, potentielsCroissance, nbPart):
|
||||||
potentielsCroissance[c] = potentielsBitmap[pixelsCroissance[c][0]][pixelsCroissance[c][1]]
|
potentielsCroissance[c] = potentielsBitmap[pixelsCroissance[c][0]][pixelsCroissance[c][1]]
|
||||||
|
|
||||||
def main(pixelsBitmap, pixelsCroissance, potentielsCroissance, nbPart):
|
def main(pixelsBitmap, pixelsCroissance, potentielsCroissance, nbPart):
|
||||||
run = True
|
try:
|
||||||
init()
|
run = True
|
||||||
# graine: début de décharge en haut au milieu
|
init()
|
||||||
graine = [int(N / 2), 1]
|
# graine: début de décharge en haut au milieu
|
||||||
nouv = graine
|
graine = [int(N / 2), 1]
|
||||||
pixelsBitmap[nouv[0]][nouv[1]] = 1
|
nouv = graine
|
||||||
dessinBitmap[nouv[1]][nouv[0]] = 1
|
|
||||||
condInitBitmap[nouv[0]][nouv[1]] = -1
|
|
||||||
potentielsBitmap[nouv[0]][nouv[1]] = 0
|
|
||||||
nbPart = 1
|
|
||||||
while run == True:
|
|
||||||
# elimine les pixelsCroissance qui sont proche de nouv
|
|
||||||
eliminePixelsPres(nouv, pixelsCroissance, potentielsCroissance)
|
|
||||||
# mise à jour de la carte des potentiels
|
|
||||||
maxdelta = 1
|
|
||||||
# condition d'arrêt à MAXDELTA du max des mises à jour des potentiels relatifs
|
|
||||||
cf = 0
|
|
||||||
if MAJPETITE:
|
|
||||||
while maxdelta > MAXDELTA:
|
|
||||||
maxdelta = majPotentielsSousBitmapRapide(nouv[0], nouv[1], S)
|
|
||||||
cf += 1
|
|
||||||
maxdelta = 1
|
|
||||||
cs = 0
|
|
||||||
while maxdelta > MAXDELTA and cs<200:
|
|
||||||
maxdelta = majPotentielsBitmapRapide()
|
|
||||||
#print(cs, " : ", maxdelta)
|
|
||||||
cs += 1
|
|
||||||
# définition des nouveaux sites de croissance potentiels
|
|
||||||
croissanceRapide(nouv, pixelsBitmap, pixelsCroissance, potentielsCroissance)
|
|
||||||
# mise à jour des potentiels des candidats à la croissance
|
|
||||||
majPotentielsCroissance(pixelsCroissance, potentielsCroissance, nbPart)
|
|
||||||
res = choix(pixelsCroissance, potentielsCroissance)
|
|
||||||
nouv = res[0]
|
|
||||||
# le point choisi est elimine des croissances possibles
|
|
||||||
pixelsCroissance.pop(res[1])
|
|
||||||
potentielsCroissance.pop(res[1])
|
|
||||||
# le point choisi est dessine
|
|
||||||
pixelsBitmap[nouv[0]][nouv[1]] = 1
|
pixelsBitmap[nouv[0]][nouv[1]] = 1
|
||||||
dessinBitmap[nouv[1]][nouv[0]] = 1
|
dessinBitmap[nouv[1]][nouv[0]] = 1
|
||||||
# le point choisi devient une contrainte à potentiel nul
|
|
||||||
condInitBitmap[nouv[0]][nouv[1]] = -1
|
condInitBitmap[nouv[0]][nouv[1]] = -1
|
||||||
potentielsBitmap[nouv[0]][nouv[1]] = 0
|
potentielsBitmap[nouv[0]][nouv[1]] = 0
|
||||||
nbPart += 1
|
nbPart = 1
|
||||||
if nouv[0] == 0 or nouv[0] == N-1 or nouv[1] == N-2 or nbPart > partMax :
|
while run == True:
|
||||||
run = False
|
# elimine les pixelsCroissance qui sont proche de nouv
|
||||||
|
eliminePixelsPres(nouv, pixelsCroissance, potentielsCroissance)
|
||||||
|
# mise à jour de la carte des potentiels
|
||||||
|
maxdelta = 1
|
||||||
|
# condition d'arrêt à MAXDELTA du max des mises à jour des potentiels relatifs
|
||||||
|
cf = 0
|
||||||
|
if MAJPETITE:
|
||||||
|
while maxdelta > MAXDELTA:
|
||||||
|
maxdelta = majPotentielsSousBitmapRapide(nouv[0], nouv[1], S)
|
||||||
|
cf += 1
|
||||||
|
maxdelta = 1
|
||||||
|
cs = 0
|
||||||
|
while maxdelta > MAXDELTA and cs<200:
|
||||||
|
maxdelta = majPotentielsBitmapRapide()
|
||||||
|
#print(cs, " : ", maxdelta)
|
||||||
|
cs += 1
|
||||||
|
# définition des nouveaux sites de croissance potentiels
|
||||||
|
croissanceRapide(nouv, pixelsBitmap, pixelsCroissance, potentielsCroissance)
|
||||||
|
# mise à jour des potentiels des candidats à la croissance
|
||||||
|
majPotentielsCroissance(pixelsCroissance, potentielsCroissance, nbPart)
|
||||||
|
res = choix(pixelsCroissance, potentielsCroissance)
|
||||||
|
nouv = res[0]
|
||||||
|
# le point choisi est elimine des croissances possibles
|
||||||
|
pixelsCroissance.pop(res[1])
|
||||||
|
potentielsCroissance.pop(res[1])
|
||||||
|
# le point choisi est dessine
|
||||||
|
pixelsBitmap[nouv[0]][nouv[1]] = 1
|
||||||
|
dessinBitmap[nouv[1]][nouv[0]] = 1
|
||||||
|
# le point choisi devient une contrainte à potentiel nul
|
||||||
|
condInitBitmap[nouv[0]][nouv[1]] = -1
|
||||||
|
potentielsBitmap[nouv[0]][nouv[1]] = 0
|
||||||
|
nbPart += 1
|
||||||
|
if nouv[0] == 0 or nouv[0] == N-1 or nouv[1] == N-2 or nbPart > partMax :
|
||||||
|
run = False
|
||||||
|
print("N=", N, "eta=", eta, "nbpart=", nbPart, "MAXDELTA=", MAXDELTA)
|
||||||
|
return nbPart
|
||||||
|
except IndexError:
|
||||||
|
print("Bug")
|
||||||
|
|
||||||
print("N=", N, "eta=", eta, "nbpart=", nbPart, "MAXDELTA=", MAXDELTA)
|
print("N=", N, "eta=", eta, "nbpart=", nbPart, "MAXDELTA=", MAXDELTA)
|
||||||
return nbPart
|
return nbPart
|
||||||
|
|
Loading…
Reference in New Issue