Bonjour,
Je poste mon programme pygame/python afin de vous demander de l'aide. Nous avons un projet pour la fin de l'année qui est la Planche de Galton, le but est qu'un grand nombre de billes tombent sur des clous. Cependant, nous ne trouvons pas le moyen de générer plusieurs billes ( le nombre de billes totales sélectionnées lors des paramètres par le joueur) et d'y mettre un temps d'attente entre chaque bille et de les voir tombées. Je vous copie colle notre programme, Merci d'avance pour votre aide! Mélanie
from tkinter import *
from tkinter.messagebox import *
import pygame
from pygame.locals import *
import random
import time
Mafenetre=Tk()
Mafenetre.title("Fenêtre des paramètres")
text4=Label(Mafenetre,text="Bienvenue ! Remplissez les paramètres suivants:")
text4.pack()
def quitter():
Mafenetre.destroy
# Le cadre
cadre=Frame(Mafenetre,bg ='grey', bd =4, relief =FLAT)
cadre.pack(padx=5,pady=10)
# Les textes
text1=Label(cadre,text=" Choisir un nombre de billes entre 100 et 1000")
text2=Label(cadre,text=" Nombre de rangées de clous entre 5 et 20 ")
text3=Label(cadre,text=" Vitesse : Moyenne ")
photo = PhotoImage(file ='jouer.gif')
photo1 = PhotoImage(file ='fermer.gif')
nombrebille=StringVar()
champbille=Entry(cadre,textvariable=nombrebille)
nbrangees=StringVar()
champclou=Entry(cadre,textvariable=nbrangees)
# Le placement
text1.grid(row=0,column=0)
text2.grid(row=1,column=0)
text3.grid(row=2,column=0)
champbille.grid(row=0,column=1)
champclou.grid(row=1,column=1)
boutonjouer=Button(Mafenetre, image=photo, command=Mafenetre.destroy)
boutonjouer.pack()
boutonquitter=Button(Mafenetre, image=photo1, command=Mafenetre.destroy)
boutonquitter.pack(side=RIGHT)
Mafenetre.mainloop()
pygame.init()
pygame.display.init()
#Ouverture de la fenêtre Pygame
n=int(nbrangees.get())
b=int(nombrebille.get())
speed=[0,1]
fenetre = pygame.display.set_mode((1000, 1000 ))
#Chargement et collage du fond
fond = pygame.image.load("blanc.jpg").convert_alpha()
fenetre.blit(fond, (0,0))
#Chargement et collage des personnages ( billes + clous )
bille = pygame.image.load("bille2.png").convert_alpha()
billerect=bille.get_rect()
billerect.x=500
billerect.y=50
clou = pygame.image.load("clou4.png").convert_alpha()
def placementclous(n):
global pos
pos=[]
for i in range(0,n):
pos.append((-(n-1)+2*i,n-1))
l=[1]
j=1
for e in range(n,2,-1):
j=j+e
l.append(j)
for i in range (0,n-1):
for e in range (l[i],len(pos)):
pos.append ((pos[e][0]-1,pos[e][1]-1))
fenetre.blit(fond,(0,0))
for i in range(0,len(pos)):
fenetre.blit(clou, (pos[i][0]*25+480,pos[i][1]*25+180))
if (billerect.x,billerect.y) == (pos[i][0]*25+500,pos[i][1]*25+193) :
cote=random.randint(0,1)
if cote==1:
speed[0]=-1
else:
speed[0]=1
if billerect.y == pos[0][1]*25+220 :
speed[0]=0
#Rafraîchissement de l'écran
pygame.display.flip()
placementclous(n)
continuer=1
#BOUCLE INFINIE
while continuer:
for event in pygame.event.get():
if event.type==pygame.KEYDOWN:
if event.type==pygame.K_ESCAPE:
continuer=0
break
elif event.type==pygame.QUIT:
continuer=0
break
billerect=billerect.move(speed)
billedepart(b)
placementclous(n)
fenetre.blit(bille, billerect)
pygame.display.flip()
pygame.time.delay(10)
pygame.quit()

 

 
		
		 
        

 
			
			

 
   
 


 Projet ISN Planche de Galton Python/Pygame/Tkinter
 Projet ISN Planche de Galton Python/Pygame/Tkinter
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 
 
 
			 
  
						
Partager