Commit e4e6005c26cdb825c410e9c8f0ba9869ef1ed937

Authored by Jourlin Pierre
1 parent a55d5ff8be
Exists in master

+can change bloc size

Showing 2 changed files with 13 additions and 13 deletions Inline Diff

675 KB

1 import pygame 1 import pygame
2 import time 2 import time
3 import random 3 import random
4 4
5 pygame.init() 5 pygame.init()
6 6
7 # Définition des couleurs en composante (Rouge, Vert, Bleu) 7 # Définition des couleurs en composante (Rouge, Vert, Bleu)
8 blanc = (255, 255, 255) 8 blanc = (255, 255, 255)
9 jaune = (255, 255, 102) 9 jaune = (255, 255, 102)
10 noir = (0, 0, 0) 10 noir = (0, 0, 0)
11 rouge = (213, 50, 80) 11 rouge = (213, 50, 80)
12 vert = (0, 255, 0) 12 vert = (0, 255, 0)
13 bleu = (50, 153, 213) 13 bleu = (50, 153, 213)
14 14
15 largeur_plateau = 600 15 largeur_plateau = 600
16 hauteur_plateau = 400 16 hauteur_plateau = 400
17 17
18 plateau = pygame.display.set_mode((largeur_plateau, hauteur_plateau)) 18 plateau = pygame.display.set_mode((largeur_plateau, hauteur_plateau))
19 pygame.display.set_caption("Le Serpent Numérique du LIA") 19 pygame.display.set_caption("Le Serpent Numérique du LIA")
20 20
21 horloge = pygame.time.Clock() 21 horloge = pygame.time.Clock()
22 22
23 bloc_serpent = 10 23 taille_bloc = 20
24 vitesse_serpent = 5 24 vitesse_serpent = 5
25 25
26 style_caractères = pygame.font.SysFont("bahnschrift", 25) 26 style_caractères = pygame.font.SysFont("bahnschrift", 25)
27 style_scores = pygame.font.SysFont("comicsansms", 35) 27 style_scores = pygame.font.SysFont("comicsansms", 35)
28 28
29 29
30 def votre_score(score): 30 def votre_score(score):
31 valeur = style_scores.render("Votre Score: " + str(score), True, jaune) 31 valeur = style_scores.render("Votre Score: " + str(score), True, jaune)
32 plateau.blit(valeur, [0, 0]) 32 plateau.blit(valeur, [0, 0])
33 33
34 def notre_serpent(bloc_serpent, corps_serpent): 34 def notre_serpent(taille_bloc, corps_serpent):
35 for x in corps_serpent: 35 for x in corps_serpent:
36 pygame.draw.rect(plateau, noir, [x[0], x[1], bloc_serpent, bloc_serpent]) 36 pygame.draw.rect(plateau, noir, [x[0], x[1], taille_bloc, taille_bloc])
37 37
38 def message(msg, color, décalage=0): 38 def message(msg, color, décalage=0):
39 mesg = style_caractères.render(msg, True, color) 39 mesg = style_caractères.render(msg, True, color)
40 plateau.blit(mesg, [largeur_plateau / 6, hauteur_plateau / 3+décalage]) 40 plateau.blit(mesg, [largeur_plateau / 6, hauteur_plateau / 3+décalage])
41 41
42 def boucle_jeu(): 42 def boucle_jeu():
43 fin_jeu = False 43 fin_jeu = False
44 ferme_jeu = False 44 ferme_jeu = False
45 45
46 x1 = largeur_plateau / 2 46 x1 = largeur_plateau / 2
47 y1 = hauteur_plateau / 2 47 y1 = hauteur_plateau / 2
48 48
49 x1_change = 0 49 x1_change = 0
50 y1_change = 0 50 y1_change = 0
51 51
52 corps_serpent = [] 52 corps_serpent = []
53 longueur_serpent = 1 53 longueur_serpent = 1
54 54
55 repas_x = round(random.randrange(0, largeur_plateau - bloc_serpent) / 10.0) * 10.0 55 repas_x = round(random.randrange(0, largeur_plateau - taille_bloc) / taille_bloc) * taille_bloc
56 repas_y = round(random.randrange(0, hauteur_plateau - bloc_serpent) / 10.0) * 10.0 56 repas_y = round(random.randrange(0, hauteur_plateau - taille_bloc) / taille_bloc) * taille_bloc
57 57
58 while not fin_jeu: 58 while not fin_jeu:
59 59
60 while ferme_jeu == True: 60 while ferme_jeu == True:
61 plateau.fill(bleu) 61 plateau.fill(bleu)
62 message("Zut ! Vous avez perdu !", rouge) 62 message("Zut ! Vous avez perdu !", rouge)
63 message("Appuyez sur J pour jouer encore", jaune, 20) 63 message("Appuyez sur J pour jouer encore", jaune, 20)
64 message("ou sur Q pour quitter le jeu.", jaune, 40) 64 message("ou sur Q pour quitter le jeu.", jaune, 40)
65 votre_score(longueur_serpent - 1) 65 votre_score(longueur_serpent - 1)
66 pygame.display.update() 66 pygame.display.update()
67 67
68 for évènement in pygame.event.get(): 68 for évènement in pygame.event.get():
69 if évènement.type == pygame.KEYDOWN: 69 if évènement.type == pygame.KEYDOWN:
70 if évènement.key == pygame.K_q: 70 if évènement.key == pygame.K_q:
71 fin_jeu = True 71 fin_jeu = True
72 ferme_jeu = False 72 ferme_jeu = False
73 if évènement.key == pygame.K_j: 73 if évènement.key == pygame.K_j:
74 boucle_jeu() 74 boucle_jeu()
75 75
76 for évènement in pygame.event.get(): 76 for évènement in pygame.event.get():
77 if évènement.type == pygame.QUIT: 77 if évènement.type == pygame.QUIT:
78 fin_jeu = True 78 fin_jeu = True
79 if évènement.type == pygame.KEYDOWN: 79 if évènement.type == pygame.KEYDOWN:
80 if évènement.key == pygame.K_LEFT: 80 if évènement.key == pygame.K_LEFT:
81 x1_change = -bloc_serpent 81 x1_change = -taille_bloc
82 y1_change = 0 82 y1_change = 0
83 elif évènement.key == pygame.K_RIGHT: 83 elif évènement.key == pygame.K_RIGHT:
84 x1_change = bloc_serpent 84 x1_change = taille_bloc
85 y1_change = 0 85 y1_change = 0
86 elif évènement.key == pygame.K_UP: 86 elif évènement.key == pygame.K_UP:
87 y1_change = -bloc_serpent 87 y1_change = -taille_bloc
88 x1_change = 0 88 x1_change = 0
89 elif évènement.key == pygame.K_DOWN: 89 elif évènement.key == pygame.K_DOWN:
90 y1_change = bloc_serpent 90 y1_change = taille_bloc
91 x1_change = 0 91 x1_change = 0
92 92
93 if x1 >= largeur_plateau or x1 < 0 or y1 >= hauteur_plateau or y1 < 0: 93 if x1 >= largeur_plateau or x1 < 0 or y1 >= hauteur_plateau or y1 < 0:
94 ferme_jeu = True 94 ferme_jeu = True
95 x1 += x1_change 95 x1 += x1_change
96 y1 += y1_change 96 y1 += y1_change
97 plateau.fill(bleu) 97 plateau.fill(bleu)
98 pygame.draw.rect(plateau, vert, [repas_x, repas_y, bloc_serpent, bloc_serpent]) 98 pygame.draw.rect(plateau, vert, [repas_x, repas_y, taille_bloc, taille_bloc])
99 tête_serpent = [] 99 tête_serpent = []
100 tête_serpent.append(x1) 100 tête_serpent.append(x1)
101 tête_serpent.append(y1) 101 tête_serpent.append(y1)
102 corps_serpent.append(tête_serpent) 102 corps_serpent.append(tête_serpent)
103 if len(corps_serpent) > longueur_serpent: 103 if len(corps_serpent) > longueur_serpent:
104 del corps_serpent[0] 104 del corps_serpent[0]
105 105
106 for x in corps_serpent[:-1]: 106 for x in corps_serpent[:-1]:
107 if x == tête_serpent: 107 if x == tête_serpent:
108 ferme_jeu = True 108 ferme_jeu = True
109 109
110 notre_serpent(bloc_serpent, corps_serpent) 110 notre_serpent(taille_bloc, corps_serpent)
111 votre_score(longueur_serpent - 1) 111 votre_score(longueur_serpent - 1)
112 112
113 pygame.display.update() 113 pygame.display.update()
114 114
115 if x1 == repas_x and y1 == repas_y: 115 if x1 == repas_x and y1 == repas_y:
116 repas_x = round(random.randrange(0, largeur_plateau - bloc_serpent) / 10.0) * 10.0 116 repas_x = round(random.randrange(0, largeur_plateau - taille_bloc) / taille_bloc) * taille_bloc
117 repas_y = round(random.randrange(0, hauteur_plateau - bloc_serpent) / 10.0) * 10.0 117 repas_y = round(random.randrange(0, hauteur_plateau - taille_bloc) / taille_bloc) * taille_bloc
118 longueur_serpent += 1 118 longueur_serpent += 1
119 119
120 horloge.tick(vitesse_serpent) 120 horloge.tick(vitesse_serpent)
121 121
122 pygame.quit() 122 pygame.quit()
123 quit() 123 quit()
124 124
125 boucle_jeu() 125 boucle_jeu()
126 126