rom tkinter import * from random import randint ############################################### # # Partie 1 : Automates cellulaires bicolores # ################################################ def initialiseRegles(numRegle): '''paramètre: numRegle est un entier entre 0 et 255 inclus résultat: une liste de 8 listes chacune de longueur 4 >>> initialiseRegles(110) [[False,False,False,False], [False,False,True,False]] ''' regles = [[False]*4 for i in range(8)] #entrées for i in range(8): if i & 1 == 1 : regles[i][2] = True if i & 2 == 2 : regles[i][1] = True if i & 4 == 4 : regles[i][0] = True #sorties for i,j in enumerate([2**i for i in range(8)]): if numRegle & j : regles[i][3] = True return regles def afficheRegles(regles): pass def etatSuivant(numCellule,tableauCourant,regles): pass def initSimple(position): pass def generation(noRegle): pass ############################################### # # Partie 2 : Automates cellulaires tricolores # ################################################ COULEUR_1 = (255,255,0) COULEUR_2 = (50,50,255) COULEUR_3 = (150,150,255) def decToTri(num): '''paramètre: num un entier en base 10 inférieur à .... résultat: un entier en base 3 sur 7 chiffres >>> decToTri(2040) 2210120 ''' pass def initTriSimple(position,valeur): pass def generationTri(noRegle): pass #------------------------------------------------------------- # # NE RIEN ECRIRE DANS LA PARTIE CI_DESSOUS JUSQU'AU MAIN # #------------------------------------------------------------- # Marge autour du Canevas MARGE = 10 # Largeur d'une Cellule COTE = 5 # Dimensions de la grille NB_CELLULES = 100 NB_JOURS = 100 # Dimensions du Canevas LARGEUR = 2*MARGE + NB_CELLULES*COTE HAUTEUR = 2*MARGE + NB_JOURS*COTE def dessineCarre(colonie,numGen,numCel): x = MARGE + numCel*COTE y = MARGE + numGen*COTE if colonie[numCel]: zoneDessin.create_rectangle(x,y,x+COTE,y+COTE,fill="black") else: zoneDessin.create_rectangle(x,y,x+COTE,y+COTE) def dessineCarreTri(colonie,numGen,numCel): x = MARGE + numCel*COTE y = MARGE + numGen*COTE if colonie[numCel] == 2: zoneDessin.create_rectangle(x,y,x+COTE,y+COTE,fill=hexaCouleur(COULEUR_1),outline=hexaCouleur(COULEUR_1)) elif colonie[numCel] == 1: zoneDessin.create_rectangle(x,y,x+COTE,y+COTE,fill=hexaCouleur(COULEUR_2),outline=hexaCouleur(COULEUR_2)) else: zoneDessin.create_rectangle(x,y,x+COTE,y+COTE,fill=hexaCouleur(COULEUR_3),outline=hexaCouleur(COULEUR_3)) def dessineColonie(colonie,numGen): for i in range(len(colonie)): dessineCarre(colonie,numGen,i) def dessineColonieTri(colonie,numGen): for i in range(len(colonie)): dessineCarreTri(colonie,numGen,i) def hexaCouleur(tuple): chaine = '#' for i in range(3): s = hex(tuple[i])[2:] if len(s) == 1: s = '0'+ s chaine = chaine + s return chaine # ############################################ # # ------- MAIN------ # ############################################### ############################################### # # Partie 1 : Automates cellulaires bicolores # ################################################ #Question 1: afficher la règle 110 #----------------------------------------------- regles = initialiseRegles(110) afficheRegles(regles) ############################################## #Question 2:Exploration des différentes règles #--------------------------------------------- ##fenetre = Tk() ##fenetre.title("automate cellulaire 1D") ## ## ## ##zoneDessin = Canvas(fenetre,width=LARGEUR,height=HAUTEUR) ##zoneDessin.pack(side=TOP) ## ##generation(110) ##fenetre.mainloop() ############################################### # # Partie 2 : Automates cellulaires tricolores # ################################################ #Question 4: Test de la fonction decToTri(......) #----------------------------------------------- #print(decToTri(2040)) ############################################################ #Question 4: Génération de la colonie suivant la règle 2040 #---------------------------------------------------------- ##fenetre = Tk() ##fenetre.title("automate cellulaire 1D") ## ## ## ##zoneDessin = Canvas(fenetre,width=LARGEUR,height=HAUTEUR) ##zoneDessin.pack(side=TOP) ## ##generationTri(2040) ##fenetre.mainloop()