Skip to content
Snippets Groups Projects
Commit 11d4e100 authored by Boujerfaoui Yassine's avatar Boujerfaoui Yassine
Browse files

Merge branch 'master' of...

Merge branch 'master' of gitlab-student.centralesupelec.fr:2018boujerfay/coding-week-gol-dolleans-boujerfaoui
parents 68c0f088 8d1667b0
No related branches found
No related tags found
No related merge requests found
from tkinter import *
from game_of_life.generate_universe import *
from game_of_life.generation import *
from game_of_life.survival import *
from game_of_life.add_seed import *
fenetre = Tk()
game_of_life = Toplevel(fenetre)
......@@ -9,22 +11,65 @@ universe = generate_universe((100,100))
canvas = Canvas(game_of_life)
canvas.pack()
var_text = StringVar
ligne_texte = Entry(fenetre, textvariable=var_text, width=30)
ligne_texte.pack()
def create_a_grid():
"create the grid for the graphic interface"
"""create the grid for the graphic interface"""
width = game_of_life.winfo_width()
heigth = game_of_life.winfo_height()
global zones #contient l'ensemble des zones representant des cellules
zones = []
for x in range(len(universe)):
zones.append([])
for y in range (len(universe[0])):
zones[x].append((x*width/100,(x+1)*width/100,y*width/100,(y+1)*width/100))
for x in range(len(universe)):
for y in range(len(universe[0])):
if universe[x][y]==1:
canvas.create_rectangle(zones[x][y],fill="black")
zones.append(canvas.create_rectangle(x*width/100,(x+1)*width/100,y*width/100,(y+1)*width/100), fill="black")
else:
zones.append(canvas.create_rectangle(x*width/100,(x+1)*width/100,y*width/100,(y+1)*width/100, fill="white"))
def update_grid():
"""mets la grille a jours """
global universe
for x in range(len(universe)):
for y in range (len(universe[0])):
if universe[x][y] == 0:
if naissance([x][y]) == 1:
"colorier la case zones[x][y] en vert"
else:
canvas.create_rectangle(zones[x][y],fill="white")
if survival(universe[x][y]) == 0:
"colorier la case zones[x][y] en rouge"
universe = generation(universe)
def create_cell_on_click(event):
"""créer une cellule vivante la ou l'utilisateur clique"""
global universe
x = event.x//(width/100)
y = event.y//(heigth/100)
universe[x][y] = 1
def add_seed_tk():
"""ajoute la graine donner dans la fenetre principale"""
global universe
type_seed = ligne_texte.get()
print(type_seed)
ligne_texte.config(text=" ")
seed = create_seed(type_seed)
"""Gestion d'exceptions"""
try:
x_start = rd.randint(0,size[0]-len(seed))
y_start = rd.randint(0,size[1]-len(seed[0]))
universe= add_seed_to_universe(seed, universe, x_start, y_start)
except:
print("la graine est trop grande pour l'univers")
button_add_seed = Button(fenetre, text="ajoute la graine",command=add_seed_tk)
button_add_seed.pack()
create_a_grid()
......
......@@ -8,21 +8,20 @@ from matplotlib import animation
import random as rd
def simulate(size, type_seed, iterations):
"""Size : taille de l'univers , Type_Seed : Type de la graine , Iterations : Nombre d'iterations d'univers"""
"""Création de l'univers et ajout de la graine"""
"""Size : taille de l'univers , Type_Seed : Type de la graine , Iterations : Nombre d'iterations d'univers"""
universe = generate_universe(size)
seed = create_seed(type_seed)
"""Choix aléatoire des coordonnées de la position aléatoire de la cellule tout en haut en gauche de la graine"""
x_start = rd.randint(0,size[0]-len(seed))
y_start = rd.randint(0,size[1]-len(seed[0]))
"""Ajout de la graine dans l'univers"""
universe = add_seed_to_universe(seed,universe,x_start,y_start)
"""Gestion d'exceptions"""
try:
x_start = rd.randint(0,size[0]-len(seed))
y_start = rd.randint(0,size[1]-len(seed[0]))
except:
print("la graine est trop grande pour l'univers")
"""Ajout de la graine dans l'univers"""
universe = add_seed_to_universe(seed,universe,x_start,y_start)
fig=plt.figure()
im=plt.imshow(universe,cmap="Greys",animated=True)
"""cmap : Chaine de caractère de coloriation de la figure , animated : Variable booléene pour l'activation de l'animation"""
......@@ -38,7 +37,7 @@ def simulate(size, type_seed, iterations):
simulate((6,6), "beacon", 10)
"""def main():
def main():
x = int(input("Entrer la largeur de l'univers"))
y = int(input("Entrer la hauteur de l'univers"))
type_seed = input("Entrer le type de graine")
......@@ -47,4 +46,4 @@ simulate((6,6), "beacon", 10)
if __name__ == "__main__":
main()"""
main()
......@@ -48,9 +48,10 @@ def create_seed(type_seed):
"Renvoie une graine du type indiqué"
try:
seed = seeds[type_seed]
except:
return seed
except KeyError:
print("Ce type de graine est inconnu")
return seed
def add_seed_to_universe(seed, universe, x_start, y_start):
......@@ -58,6 +59,7 @@ def add_seed_to_universe(seed, universe, x_start, y_start):
size_seed = (len(seed),len(seed[0]))
if size_seed[0]>len(universe) or size_seed[1]>len(universe[0]):
print("la graine est trop grande")
try:
for x in range (size_seed[0]):
for y in range (size_seed[1]):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment