CoDéfi

Défi : Mission 2 : Créer le corps du serpent

Proposé par c.chartraire

Supports Pédagogiques

Python

Concours

CodeWeek

academie

Petit programmeur, lance toi dans l’aventure.

Lis bien les objectifs du défi, regarde attentivement la vidéo qui montre le résultat à obtenir et c’est à toi de jouer.

Une fois le travail fait, pense à cliquer sur le bouton j’ai relevé le défi.

Bon courage


Objectif

L’objectif de cette mission est de créer le serpent, de le faire se déplacer et de fermer le jeu s’il sort de l’espace défini.

Principe

  • Définir les variables dans la fonction init
    • variable pour la position x
    • variable pour la position y
    • variable pour la direction x
    • variable pour la direction y
    • variable pour l’épaisseur du corps à 10
    • variable pour garder en mémoire la liste des positions du serpent
    • variable pour connaitre la taille du serpent
  • Dans la fonction principale, tant que jeu_encours est vraie
    • si on appuie sur la croix rouge, le jeu doit s’éteindre
    • en fonction de la flèche du clavier, le serpent doit se tourner dans la bonne direction
    • le serpent doit se déplacer en fonction de la direction reçue par les touches
    • Si le serpent touche les limites du terrain, le jeu s’éteint
    • Stocker la position de la tête du serpent dans une liste dédiée
    • si la longueur de la liste est plus grand que la taille du serpent, enlever le premier élément de la liste position_serpent
    • Si le serpent se mord, le jeu s’éteint
    • appeler le fonction afficher()
  • Créer la fonction "afficher"
    • Définir la couleur de l’écran
    • Afficher le serpent en utilisant pygame.draw.rect avec en argument (ecran, couleur, position x, position y, serpent_corps, serpent_corps)
    • Afficher les autres parties du serpent en utilisant un "for"
    • Afficher les limites en utilisant pygame.draw.rect
    • définir la vitesse du jeu à 20 en utilisant self.clock.tick(20)
    • Mettre à jour l’écran en utilisant pygame.display.flip()

vidéo du résultat attendu