Snake avec Pygame
Bienvenue dans notre jeu Snake en utilisant Pygame ! Nous allons dƩvelopper le jeu Ʃtape par Ʃtape pour crƩer une expƩrience amusante et interactive. Voici comment procƩder :
Partie 1 : Initialisation du jeu
Dans cette partie, nous allons initialiser Pygame, définir les couleurs utilisées dans le jeu et créer la fenêtre du jeu.
import pygame |
Nous importons le module pygame et initialisons Pygame avec pygame.init(). Ensuite, nous définissons les couleurs que nous allons utiliser dans le jeu. Nous définissons également les dimensions de la fenêtre du jeu. Enfin, nous créons la fenêtre du jeu avec pygame.display.set_mode() et définissons le titre de la fenêtre avec pygame.display.set_caption().
Partie 2: Initialisation du serpent
Dans cette partie, nous allons dƩfinir les variables nƩcessaires pour reprƩsenter le serpent.
snake = [(9, 5), (8, 5), (7, 5)] |
Nous utilisons une liste snake pour stocker les segments du serpent. Chaque segment est reprƩsentƩ par un tuple de coordonnƩes (x, y). Nous initialisons le serpent avec trois segments. Nous dƩfinissons Ʃgalement la variable direction pour indiquer la direction initiale du serpent.
Partie 3: Initialisation de la nourriture
Dans cette partie, nous allons dƩfinir les variables nƩcessaires pour reprƩsenter la nourriture du serpent.
food = (random.randint(0, NUM_CELLS_X – 1), random.randint(0, NUM_CELLS_Y – 1)) |
Nous utilisons une variable food pour stocker les coordonnĆ©es de la nourriture. Les coordonnĆ©es x et y sont gĆ©nĆ©rĆ©es alĆ©atoirement Ć l’intĆ©rieur des limites de la grille de jeu.
Partie 4: Boucle principale du jeu
Dans cette partie, nous allons crƩer la boucle principale du jeu qui sera exƩcutƩe en continu.
while True: |
Cette boucle principale s’exĆ©cute en continu jusqu’Ć ce que le joueur ferme la fenĆŖtre du jeu. Ć l’intĆ©rieur de la boucle, nous gĆ©rons les Ć©vĆ©nements tels que les mouvements du serpent Ć l’aide des touches directionnelles du clavier. Ensuite, nous effectuons les diffĆ©rentes Ć©tapes du jeu : dĆ©placement du serpent, gestion des collisions, effacement de l’Ć©cran, dessin du serpent et de la nourriture, actualisation de l’affichage de la fenĆŖtre et contrĆ“le de la vitesse du jeu.
Les parties spƩcifiques comme le dƩplacement du serpent, la gestion des collisions et le dessin seront expliquƩes dans les Ʃtapes suivantes.
Partie 5: DƩplacement du serpent
Dans cette partie, nous allons gƩrer le dƩplacement du serpent en fonction de sa direction.
if direction == UP: |
Nous déterminons la nouvelle position de la tête du serpent en fonction de sa direction. Ensuite, nous insérons cette nouvelle tête au début de la liste snake et supprimons le dernier segment pour effectuer le mouvement.
Partie 6: Gestion des collisions
Dans cette partie, nous allons gérer les collisions du serpent avec les bords de la fenêtre et avec lui-même.
if snake[0][0] < 0 or snake[0][0] >= NUM_CELLS_X or snake[0][1] < 0 or snake[0][1] >= NUM_CELLS_Y: |
Nous vérifions si la tête du serpent est en dehors des limites de la grille de jeu ou si elle entre en collision avec un autre segment du serpent. Dans ces cas, nous appelons la fonction game_over() qui met fin au jeu.
Partie 7: Effacement de l’Ć©cran
Dans cette partie, nous effaƧons l’Ć©cran avant de dessiner les Ć©lĆ©ments mis Ć jour.
window.fill(BLACK) |
Nous utilisons la couleur noire pour remplir l’Ć©cran et le prĆ©parer Ć ĆŖtre redessinĆ©.
Partie 8: Dessin du serpent
Dans cette partie, nous dessinons le serpent Ć l’Ć©cran en parcourant tous les segments de la liste snake.
for segment in snake: |
Nous utilisons la fonction pygame.draw.rect() pour dessiner un rectangle vert pour chaque segment du serpent Ć sa position correspondante.
Partie 9: Dessin de la nourriture
Dans cette partie, nous dessinons la nourriture Ć l’Ć©cran Ć sa position actuelle.
pygame.draw.rect(window, RED, (food[0] * CELL_SIZE, food[1] * CELL_SIZE, CELL_SIZE, CELL_SIZE)) |
Nous utilisons la fonction pygame.draw.rect() pour dessiner un rectangle rouge pour représenter la nourriture à sa position correspondante.
Partie 10: Actualisation de l’affichage de la fenĆŖtre
Dans cette partie, nous mettons Ć jour l’affichage de la fenĆŖtre pour montrer les dessins mis Ć jour.
pygame.display.update() |
Nous utilisons la fonction pygame.display.update() pour actualiser l’affichage de la fenĆŖtre.
Partie 11: ContrƓle de la vitesse du jeu
Dans cette partie, nous contrƓlons la vitesse du jeu en utilisant une horloge.
clock.tick(10) |
Nous utilisons la mĆ©thode tick() de l’objet clock pour spĆ©cifier le nombre de mises Ć jour d’Ć©cran par seconde.
Cela conclut le découpage du code pour le jeu Snake. Les différentes parties expliquées ci-dessus peuvent être intégrées dans la boucle principale du jeu pour créer une version fonctionnelle du jeu Snake.
