Bonjour, quelqu'un peut bien me dire pourquoi ma dernière fonction ne s'applique pas quand j'execute ?
Voici le code :
from numpy import *
from matplotlib import *
import matplotlib.pyplot as plt
from random import random, choice
import numpy as np
p=0.6
#Création de la foret :
def hasard (p):
r = random ()
assert p>=0 and p<=1
return r<=p
t = np.zeros((20, 20), dtype=int)
for i in range (20):
for j in range (20):
if hasard (p):
t[i,j]=1
else :
t[i,j]=0
def mettreLeFeu(t):
t[2,3]=2
t[3,6]=2
t[9,10]=2
t[15,2]=2
t[14,7]=2
t[7,9]=2
t[8,2]=2
t[16,7]=2
mettreLeFeu(t)
def peutBruler(t, i, j):
n, m = t.shape
if t[i, j] == 1.:
for y in range(max(0, i - 1), min(n, i + 2)): # bord haut et bas
if t[y, j] == 2.:
return True
for x in range(max(0, j - 1), min(m, j + 2)): # bord gauche et droit
if t[i, x] == 2.:
return True
return False
def propageFeu(t):
n,m=t.shape
for i in range(n):
for j in range(m):
if peutBruler(t,i,j):
t[i,j]=2
return t
propageFeu (t) #Le feu s'est propagé pour chaque arbre qui est en contact avec un arbre en feu
def cendre(t): #Va mettre un arbre en cendre si il est brûlé en deux étapes
if mettreLeFeu==2:
t[i,j]=3
return t
cendre(t)
ligne 57, tu fait un test d'égalité entre mettreLeFeu et 2. Sauf que mettrelefeu est une fonction, donc le condition sera toujours évaluée fausse, et la l58 ne sera donc pas exécutée.
ligne 57, tu fait un test d'égalité entre mettreLeFeu et 2. Sauf que mettrelefeu est une fonction, donc le condition sera toujours évaluée fausse, et la l58 ne sera donc pas exécutée.
ah d'accord et du coup comment je peux corriger ça en voulant dire que les 2 que j'ai déclaré deviennent des 3 ?
Exécution d'une fonction
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.