1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
| from tkinter import *
from tkinter.messagebox import *
import pygame
from pygame.locals import *
import random
import time
Mafenetre=Tk()
Mafenetre.title("La Planche D'Angry Birds")
text4=Label(Mafenetre,text="Bienvenue ! Remplissez les paramètres suivants:")
text4.pack()
# Le cadre
cadre=Frame(Mafenetre,bg ='#ff9900', 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 10 ")
text3=Label(cadre,text=" Vitesse : Moyenne ")
photo = PhotoImage(file ='jouer1.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)
n=nbrangees.get()
b=nombrebille.get()
boutonjouer=Button(Mafenetre, image=photo, command=Mafenetre.destroy)
boutonjouer.pack()
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((1280, 850 ))
#Chargement et collage du fond
fond = pygame.image.load("blanc1.jpg").convert_alpha()
#Chargement et collage des personnages ( billes + clous )
class Bille():
def __init__(self,x=650,y=260,bille="bille3.png",vitesse=speed):
self.coordonnées = (x,y)
self.image = pygame.image.load(bille).convert_alpha()
self.move(vitesse)
def collision_bille():
#Mouvement aléatoire de la bille
for i in range(0,len(pos)):
if (billerect.x,billerect.y) == (pos[i][0]*40+650,pos[i][1]*40+320) :
self.cote=random.randint(0,1)
if self.cote==1:
self.speed[0]=-1
else:
self.speed[0]=1
#Pour que la bille ne se déplace que verticalement arrivé au milieu des deux clous de la rangée finale.
if self.billerect.y == self.pos[0][1]*40+360 :
self.speed[0]=0
bille1=Bille()
#def creationbilles(b):
#for i in range (1,b+1):
#str(i)=Bille()
#bille = pygame.image.load("bille3.png").convert_alpha()
#billerect=bille.get_rect()
#billerect.x=650
#billerect.y=260
clou = pygame.image.load("cochon3.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]*40+650,pos[i][1]*40+350))
posfinales=[] # POUR JEREMY, OBTENIR LE X DE LA BILLE POUR FAIRE L'HISTO !
for i in range (0,b):
if billerect.y == pos[0][1]*40+350:
posfinales.append(billerect.x)
#BOUCLE INFINIE
continuer=1
while continuer==1:
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
#pygame.time.wait(500) # Temps d'attente avant que le programme se lance
placementclous(n)
pygame.display.flip()
pygame.time.delay(10)
pygame.quit() |
Partager