Pages : 1
#1 Le 11/01/2006, à 20:21
- GI
python jeu de la vie
Salut tout le monde,
je dois programmer le jeu de la vie en python avec une interphace graphique, alors que je ne connais que le langage C...
si quelqu'un pouvait m'aider c'est cool...
merci d'avance
#2 Le 11/01/2006, à 21:00
- milambert
Re : python jeu de la vie
voici un bon cours pour le python: http://www.ulg.ac.be/cifen/inforef/swi/python.htm
dans le bas de la page se trouvent tous les liens pour le download (corrigés des exercices, le cours en pdf, ...)
mouarf, ...
Hors ligne
#3 Le 11/01/2006, à 21:07
- jib
Re : python jeu de la vie
Pas de porno sur le forum .
Sincèrement, c'est quoi, le «jeu de la vie» ?
Je sais, je ne suis pas un programmeur python, et ça se voit.
Mais ça fait remonter ton sujet, sans compter la réponse qu'elle nécessite ...
Dernière modification par jib (Le 11/01/2006, à 21:13)
#4 Le 11/01/2006, à 21:46
- Mathieu147
Re : python jeu de la vie
c'est quoi, le «jeu de la vie» ?
C'est ça.
Y'en a en écran de veille dans Breezy je crois.
Pffff…
Hors ligne
#5 Le 11/01/2006, à 22:23
- ant1
Re : python jeu de la vie
Pour ceux que ça peut intéresser :
http://jcheudin.blogspot.com/
Hors ligne
#6 Le 11/01/2006, à 22:29
- jib
Re : python jeu de la vie
Étrange... Merci quand même...
Dernière modification par jib (Le 11/01/2006, à 22:30)
#7 Le 11/01/2006, à 23:04
- bergi
Re : python jeu de la vie
je dirais que c'est un classique en programmation apres " hello world".
C'est encore pour un cours ?
http://t0m.free.fr/jdlv/
http://www.radicaleye.com/lifepage/patterns/psrtrain.html
Dernière modification par bergi (Le 11/01/2006, à 23:11)
Hors ligne
#8 Le 12/01/2006, à 11:17
- Nim
Re : python jeu de la vie
Pour les personnes ayant déjà une petite expérience en programmation, je conseillerai plus le très bon : http://fr.diveintopython.org/ pour commencer en python.
Hors ligne
#9 Le 12/01/2006, à 11:37
- Desintegr
Re : python jeu de la vie
Si tu connais GTK, tu peux utiliser les modules PyGTK qui un wrapper pour utiliser GTK avec Python.
Sinon, il y a aussi PyQt, c'est comme PyGTK mais avec Qt cette fois.
Il existe aussi le module tkinter qui être peut-être plus simple à utiliser que PyGTK et PyQt.
Ou sinon le module curses (utilisation plus graphique du terminal).
Hoc Volo, Sic Jubeo !
Mon wiki : http://desintegr.free.fr
Hors ligne
#10 Le 13/01/2006, à 11:31
- bergiautaf
Re : python jeu de la vie
Vouila je viens de retrouver mon jeu de la vie lors de mon apprentissage de python il subsiste quelques bugs mais c'est un debut qui peut t'aider :
from Tkinter import *
from random import *
from threading import Thread
import time
class MenuBar(Frame):
"""Barre de menus déroulants"""
def __init__(self, boss=None):
Frame.__init__(self, borderwidth =2)
##### Menu <Fichier> #####
fileMenu = Menubutton(self, text ='motif')
fileMenu.pack(side =LEFT)
# Partie "déroulante" :
me1 = Menu(fileMenu)
me1.add_command(label ='alea', underline =0, command = boss.motif1)
me1.add_command(label ='rpentomino', underline =0, command = boss.motif2)
me1.add_command(label ='tpentomino', underline =0, command = boss.motif3)
me1.add_command(label ='planeur', underline =0, command = boss.motif4)
me1.add_command(label ='locomotive', underline =0, command = boss.motif6)
me1.add_command(label ='vaisseau', underline =0, command = boss.motif5)
me1.add_command(label ='Effacer', underline =0, command = boss.effacer)
me1.add_command(label ='Terminer', underline =0, command = boss.quit)
# Intégration du menu :
fileMenu.configure(menu = me1)
class Fenetre(Frame):
def __init__(self):
Frame.__init__(self)
self.master.geometry("350x350")
self.master.title(" Jeu de la vie")
self.jeu =Panneau(self)
mBar = MenuBar(self.jeu)
mBar.pack()
self.jeu.pack(expand =YES, fill=BOTH, padx =0, pady =0)
self.pack()
class Panneau(Frame, Thread):
"""Panneau de jeu (grille de n x m cases)"""
def __init__(self, boss =None):
self.ligne=70
self.colonne=50
Frame.__init__(self)
Thread.__init__(self)
# Canevas :
self.can =Canvas(self,width=350, height =350, borderwidth =0)
# Liaison de l'evenement <clic de souris> a son gestionnaire :
self.can.bind("<Button-1>", self.clic)
self.can.pack()
self.cell =[] # construction d'une liste de listes
self.tabcell=[]
for i in range(self.ligne): # equivalente a un tableau
self.cell.append([0]*self.ligne) # de x lignes x x colonnes)
self.tabcell.append([0]*self.ligne)
#self.motif("alea")
self.start()
def motif1(self):
self.effacer()
element=[1,0]
for j in range(self.colonne) :
for i in range(self.ligne):
self.cell[i][j]=choice(element)
self.update()
def motif2(self):
self.effacer()
#r-pentomino
self.cell[26][25]=1
self.cell[24][26]=1
self.cell[25][26]=1
self.cell[26][26]=1
self.cell[25][27]=1
self.update()
def motif3(self):
self.effacer()
#t-pentomino
self.cell[24][36]=1
self.cell[25][36]=1
self.cell[26][36]=1
self.cell[25][37]=1
self.update()
def motif4(self):
self.effacer()
#planeur
self.cell[5][6]=1
self.cell[6][7]=1
self.cell[7][5]=1
self.cell[7][6]=1
self.cell[7][7]=1
self.update()
def motif5(self):
self.effacer()
#vaisseau spatial
self.cell[26][26]=1
self.cell[27][27]=1
self.cell[23][28]=1
self.cell[27][28]=1
self.cell[24][29]=1
self.cell[25][29]=1
self.cell[26][29]=1
self.cell[27][29]=1
self.update()
def motif6(self):
self.effacer()
#locomotive à vapeur
self.cell[23][26]=1
self.cell[26][26]=1
self.cell[27][27]=1
self.cell[23][28]=1
self.cell[27][28]=1
self.cell[24][29]=1
self.cell[25][29]=1
self.cell[26][29]=1
self.cell[27][29]=1
self.cell[23][33]=1
self.cell[24][34]=1
self.cell[25][34]=1
self.cell[25][35]=1
self.cell[25][36]=1
self.cell[24][37]=1
self.cell[23][40]=1
self.cell[26][40]=1
self.cell[27][41]=1
self.cell[23][42]=1
self.cell[27][42]=1
self.cell[24][43]=1
self.cell[25][43]=1
self.cell[26][43]=1
self.cell[27][43]=1
self.update()
def update(self):
for j in range (self.colonne):
for i in range (self.ligne):
if self.cell[i][j]==1:
self.tabcell[i][j]=self.can.create_rectangle((i*6),(j*6),(i*6)+4,(j*6)+4,fill="black")
else :
self.tabcell[i][j]=self.can.create_rectangle((i*6),(j*6),(i*6)+4,(j*6)+4,fill="white")
def run(self):
while 1:
for j in range (self.colonne):
for i in range (self.ligne):
if self.cell[i][j]==1:
self.can.itemconfigure(self.tabcell[i][j],fill="black")
else :
self.can.itemconfigure(self.tabcell[i][j],fill="white")
self.evolution()
time.sleep(0.1)
def effacer(self):
for j in range(self.colonne) :
for i in range(self.ligne):
self.cell[i][j]=0
#effacer !
self.can.delete(ALL)
def evolution(self):
#buffer
self.c =[]
for i in range(self.ligne): # equivalente a un tableau
self.c.append([0]*self.ligne) # de x lignes x x colonnes)
#for j in range(self.colonne) :
# for i in range(self.ligne):
# self.c[i][j]=self.cell[i][j] # construction d'une liste de listes
for j in range(self.colonne) :
for i in range(self.ligne):
cpt=0
self.c[i][j]=self.cell[i][j] # remplissage du buffer
#regles de conway
#case precedente et suivante
if self.cell[(self.ligne+i-1)%self.ligne][j]==1:
cpt=cpt+1
if self.cell[(self.ligne+i+1)%self.ligne][j]==1:
cpt=cpt+1
#ligne precedente
if self.cell[(self.ligne+i-1)%self.ligne][(self.colonne+j-1)%self.colonne]==1:
cpt=cpt+1
if self.cell[i][(self.colonne+j-1)%self.colonne]==1:
cpt=cpt+1
if self.cell[(self.ligne+i+1)%self.ligne][(self.colonne+j-1)%self.colonne]==1:
cpt=cpt+1
#ligne suivante
if self.cell[(self.ligne+i-1)%self.ligne][(self.colonne+j+1)%self.colonne]==1:
cpt=cpt+1
if self.cell[i][(self.colonne+j+1)%self.colonne]==1:
cpt=cpt+1
if self.cell[(self.ligne+i+1)%self.ligne][(self.colonne+j+1)%self.colonne]==1:
cpt=cpt+1
#resolution des regles
if (self.cell[i][j]==1 and (cpt==2 or cpt==3) ) :
self.c[i][j]=1
else :
if (self.cell[i][j]==0 and cpt==3) :
self.c[i][j]=1
else :
self.c[i][j]=0
#self.cell=self.c
for j in range(self.colonne) :
for i in range(self.ligne):
self.cell[i][j]=self.c[i][j] # construction d'une liste de listes
def clic(self, event):
#evenement souris
print "clic clic"
if __name__ == '__main__':
Fenetre().mainloop()
#11 Le 13/01/2006, à 12:47
- alexmic
Re : python jeu de la vie
A baj j'en avais fait un en java 2.0 il y 4 ou 5 ans... il était hum... plus long (un petite dizaine de pages de codes en courrier 9, mais hautemetn documenté).
Faut dire qu'en java le graphisme c'est moins simple. (mais c'est aussi pas le but).
L'année suivante c'était OCR
On voit que les profs debordent toujours d'imagination...
OMG Lawl pwnd rofl... Plaît-il?
Hors ligne
Pages : 1