Bonjour, actuellement en classe de terminale S nous nous sommes engagées dans la programmation d'un jeu de la vie. Nous avons réussi à générer un monde aléatoire, cependant, nous peinons à programmer la configuration des mondes suivants. Pour calculer le nombre de voisins, nous avons mis en place un programme qui marche dans une dimension 3x3, mais ce programme ne marche pas dans un monde plus important tel que 5x5. Voici notre programme, nous aimerions avoir de l'aide au plus vite car la date butoir de notre oral arrive à grand pas. Merci d'avance. Bénédicte et Cécile.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import PIL
from PIL import Image
imgal=Image.open('mondealeatoire.pgm') #image du monde aléatoire que nous avons programmé précédemment 
imgun = Image.new("L" , (5,5))
list=[]
nbVoisinsNoirs=0
 
for y in range(5):
    for x in range(5):
        imgun.putpixel((x,y),255)
x=1
y=1
 
centre=imgal.getpixel((x,y))
#Parcours tous les pixels et donne leurs couleurs
for a in range(x-1,x+2) :
    for b in range(y-1,y+2) :
        print(a,b,imgal.getpixel((a,b)))
        if imgal.getpixel((a,b))==0:
            list.append(1)
        print(list)
 
        somme=sum(list)
        print(somme)
 
        if imgal.getpixel((x,y))==0:
            nbVoisinsNoirs=somme-1
        else:
            nbVoisinsNoirs=somme
        print(nbVoisinsNoirs)
 
        if nbVoisinsNoirs==3:
            imgun.putpixel((x,y),0)
        else:
             imgun.putpixel((x,y),255)
 
        x=1+x
        y=1+y
        for c in range(x-1,x+2) :
            for d in range(y-1,y+2) :
                print(c,d,imgal.getpixel((c,d)))
                if imgal.getpixel((c,d))==0:
                    list.append(1)
                print(list)
                somme=sum(list)
                print(somme)
                if imgal.getpixel((x,y))==0:
                    nbVoisinsNoirs=somme-1
                else:
                    nbVoisinsNoirs=somme
                print(nbVoisinsNoirs)
                if nbVoisinsNoirs==2 or nbVoisinsNoirs==3:
                    imgun.putpixel((x,y),0)
                else:
                     imgun.putpixel((x,y),255)
 
imgun.save('monde1.pgm')
print('terminé')
lorsque l'on met en route le programme python nous dit " image index out of range" ou "synthax error"