Accueil > > > JEU DE LA VIE AVEC TKINTER
JEU DE LA VIE AVEC TKINTER
Information sur la source
Description
Comme promis dans mon premier code source voici . le jeu de la vie en mode graphique . Pour plus de details voir le jeu de la vie il ya des explication du principe.
Source
- from Tkinter import *
-
- import time
-
- def demo():
- modif(matrice,matrice_of_len,birth,death)
- for i in range(0,540,30):
- for j in range(0,540,30):
- if(matrice[j/30][i/30]== '0' ):
- can.create_oval(i,j,i+30,j+30,fill='red')
- else:
- can.create_oval(i,j,i+30,j+30,fill='blue')
- fen.after(1,demo)
-
- def aux(matrice):
- tmp =[]
- for i in range(len(matrice)):
- tmp1 =[]
- for j in range(len(matrice[0])):
- tmp1.append(oqp(matrice, i, j))
- tmp.append(tmp1)
- return tmp
-
- def birth_or_death(matrice, matrice_of_len,b_or_d,test):
- c ='0'
- if(test):
- c = '1'
- for i in range(len(matrice)):
- for j in range(len(matrice[0])):
- if(matrice[i][j] !=c):
- matrice[i][j] = b_or_d[matrice_of_len[i][j]]
-
- def init_mat(fic):
- matrice = []
- file = open(fic,'r')
- line = file.readlines()
- for i in range(len(line)):
- matrice.append(line[i].split())
- file.close();
- return matrice
-
- def oqp(matrice,lig, col):
- compt = 0
- ligne =len(matrice)
- colonne = len(matrice[0]) -1
- if(lig < ligne -1):
- if(col != 0):
- if(int(matrice[lig + 1][col -1]) == 1):
- compt = compt + 1
- if(int(matrice[lig + 1][col]) == 1):
- compt = compt + 1
- if(col != colonne):
- if(int(matrice[lig + 1][col +1]) == 1):
- compt = compt + 1
- if(col != colonne ):
- if(int(matrice[lig ][col +1]) == 1):
- compt = compt + 1
- if(col != 0):
- if(int(matrice[lig ][col - 1]) == 1):
- compt = compt + 1
- if(lig != 0):
- if(col != 0):
- if(int(matrice[lig-1][col-1]) == 1):
- compt = compt + 1
- if(col != colonne):
- if(int(matrice[lig - 1][col+1]) == 1):
- compt = compt + 1
- if(int(matrice[lig - 1][col]) == 1):
- compt = compt + 1
- return compt
-
- def modif(matrice,matrice_of_len,birth,death):
- matrice_of_len = aux(matrice)
- birth_or_death(matrice,matrice_of_len,birth,True)
- birth_or_death(matrice,matrice_of_len,death,False)
-
-
- # programme principal
- file = "life.txt" #fichier de matrice
- birth= '010101010101010' # regle de naissance
- death= '110001100110001' #regle de deces
- matrice = init_mat(file)
- matrice_of_len = []
- fen =Tk()
- can = Canvas(fen,bg='black', height=550,width=550)
- can.grid(row=0,column=0)
- demo()
- fen.mainloop()
from Tkinter import *
import time
def demo():
modif(matrice,matrice_of_len,birth,death)
for i in range(0,540,30):
for j in range(0,540,30):
if(matrice[j/30][i/30]== '0' ):
can.create_oval(i,j,i+30,j+30,fill='red')
else:
can.create_oval(i,j,i+30,j+30,fill='blue')
fen.after(1,demo)
def aux(matrice):
tmp =[]
for i in range(len(matrice)):
tmp1 =[]
for j in range(len(matrice[0])):
tmp1.append(oqp(matrice, i, j))
tmp.append(tmp1)
return tmp
def birth_or_death(matrice, matrice_of_len,b_or_d,test):
c ='0'
if(test):
c = '1'
for i in range(len(matrice)):
for j in range(len(matrice[0])):
if(matrice[i][j] !=c):
matrice[i][j] = b_or_d[matrice_of_len[i][j]]
def init_mat(fic):
matrice = []
file = open(fic,'r')
line = file.readlines()
for i in range(len(line)):
matrice.append(line[i].split())
file.close();
return matrice
def oqp(matrice,lig, col):
compt = 0
ligne =len(matrice)
colonne = len(matrice[0]) -1
if(lig < ligne -1):
if(col != 0):
if(int(matrice[lig + 1][col -1]) == 1):
compt = compt + 1
if(int(matrice[lig + 1][col]) == 1):
compt = compt + 1
if(col != colonne):
if(int(matrice[lig + 1][col +1]) == 1):
compt = compt + 1
if(col != colonne ):
if(int(matrice[lig ][col +1]) == 1):
compt = compt + 1
if(col != 0):
if(int(matrice[lig ][col - 1]) == 1):
compt = compt + 1
if(lig != 0):
if(col != 0):
if(int(matrice[lig-1][col-1]) == 1):
compt = compt + 1
if(col != colonne):
if(int(matrice[lig - 1][col+1]) == 1):
compt = compt + 1
if(int(matrice[lig - 1][col]) == 1):
compt = compt + 1
return compt
def modif(matrice,matrice_of_len,birth,death):
matrice_of_len = aux(matrice)
birth_or_death(matrice,matrice_of_len,birth,True)
birth_or_death(matrice,matrice_of_len,death,False)
# programme principal
file = "life.txt" #fichier de matrice
birth= '010101010101010' # regle de naissance
death= '110001100110001' #regle de deces
matrice = init_mat(file)
matrice_of_len = []
fen =Tk()
can = Canvas(fen,bg='black', height=550,width=550)
can.grid(row=0,column=0)
demo()
fen.mainloop()
Conclusion
Merci de laisser des commentaire
Bientot une aide aide pour le sudoku
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
jeu de la vie [ par dia100daly ]
je veux poster un code. Mais j'aimerai savoir si c'etait vraiment la peine car c'est la première fois. Pour plus de détail voir sur Wikipédia ( jeu de
codage Windows jeu de caractères [ par creaduff ]
Bonjour,Avant tout, précisons que je ne suis pas un aigle en Python ! Voici mon problème:J'ai écrit une petit programme permettant d'accéder à ma boit
Python et Octave"matlab" [ par soufianovich ]
Bonjour, je suis stagiaire dans une entreprise, jai fait un code octave ou"matlab" c'est la meme chose qui traite mes données. Maintenant je suis en t
Python et octave [ par soufianovich ]
Bonjour, je suis stagiaire dans une entreprise, jai fait un code octave ou"matlab" c'est la meme chose qui traite mes données. Maintenant je suis en t
Réalisation d'un plus ou moins sur Tkinter [ par kuritsu ]
Bonsoir tout le monde, et je vous souhaite la bonne année à tous par la même occasion. Je viens de me mettre à la programmation sous Python, et j'avo
Librairie graphique vectoriel [ par DoudouBidou ]
Bonjour, j'ai depuis quelques jour un projet en tête, celui de réaliser un logiciel de saisi de schéma électrique en python.
Appel d'une fonction [ par Thomeux ]
Bonjour,Je débute en python.J'essais de structurer mon Programme de la manière suivante :Un fichier bibliothèque fonction, :Un Fichi
modification de jeu morpion en python [ par apprenti2008 ]
salut a tous ! SVP j'ai vraiment besoin d'aide , je suis en première année MASS , le prof nous a demander de créer un jeu morpion en python , le princ
Probleme de conception [ par JoeNamat ]
Bonjour a vous,Je ne suis pas un tres bon programmeur et j'ai programme une interface graphique en python avec PyGTK. Cette interface graphique interr
Développement d'un logiciel de calculs en Python [ par icornato ]
Bonjour à tousIngénieur dans un BE, j'ai développé un programme d'environ 10 000 lignes en VB pour effectuer du calcul d'éléments poutre (calcul matri
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice CRéATION D'UNE BASE DE DONNéE SOUS SQL AZURECRéATION D'UNE BASE DE DONNéE SOUS SQL AZURE par junarnoalg
Sans rentrer dans les détails, je me propose ici de faire un rapide tour de ce que propose SQL Azure.
SQL Azure est avant tout un service d'hébergement de base de données relationnelles construit sur SQL Server. Il permet aux entreprises d...
Cliquez pour lire la suite de l'article par junarnoalg TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|