Commit e4e6005c26cdb825c410e9c8f0ba9869ef1ed937
1 parent
a55d5ff8be
Exists in
master
+can change bloc size
Showing 2 changed files with 13 additions and 13 deletions Inline Diff
blockade.1976.png
675 KB
snake.v0.py
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 |