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