Bonjour dans le cadre d'un projet python, je dois simuler l'évacuation d'une salle, mon programme ne fonctionne pas et je n'arrive pas à trouver l'erreur. Merci pour toute aide.
Code:import numpy as np import numpy.random as rd from pylab import* L=5 l=5 N=1 #nombre de personne rd.seed() piece=np.zeros((L,l),dtype=int) for h in range(N): ir=rd.randint(0,L) jr=rd.randint(0,l) while(piece[ir,jr]==1): ir=rd.randint(0,L) jr=rd.randint(0,l) piece[ir,jr]=1 porte=piece[0,0] iporte=0 jporte=0 count=0 newpiece=piece for i in range(L): for j in range(l): run=True while run: count=count+1 piece[iporte,jporte]=0 for i in range(L): for j in range(l): if piece[i,j]==1: d=np.ones(4)*10000 if i>0 and i+1<L and j>0 and j+1<l: if piece[i-1,j]==0: d[0]=np.sqrt((i-1-iporte)**2+(j-jporte)**2) #case haut if piece[i+1,j]==0: d[1]=np.sqrt((i+1-iporte)**2+(j-jporte)**2) #case bas if piece[i,j-1]==0: d[2]=np.sqrt((i-iporte)**2+(j-1-jporte)**2) #case gauche if piece[i,j+1]==0: d[3]=np.sqrt((i-iporte)**2+(j+1-jporte)**2) #case droite print d dmin=10000 for k in range(4): if d[k]<dmin: kmin=k else: kmin=10000 if kmin==10000: newpiece[i,j]=1 else : if kmin==1: newpiece[i-1,j]=1 newpiece[i,j]=0 if kmin==2: newpiece[i+1,j]=1 newpiece[i,j]=0 if kmin==3: newpiece[i,j-1]=1 newpiece[i,j]=0 if kmin==4: newpiece[i,j+1]=1 newpiece[i,j]=0 m=0 for i in range(L): for j in range(l): m=m+newpiece[i,j] if m==0: run=False print newpiece print count
-----