SE CONNECTER
1,2,3... codez ! | Le site de la Fondation La main à la pâte
Module 123 Codez | Programmer | Informatics and Digital Creation

Projet « Jeu de plateforme » – Etape 6 Démarrer le jeu lorsque le paysage est prêt


1, 2, 3, codez ! - Activités cycle 4 - Projet « Jeu de plateforme » - Etape 6 : Démarrer le jeu lorsque le paysage est prêt

Discipline dominante

Mathématiques

Résumé

Les élèves organisent dans le temps deux fonctionnalités (la mise en place des plateformes et le démarrage du jeu) en utilisant des événements de type « message » : le démarrage du jeu ne doit se faire qu’une fois le paysage installé.

Notions

« Langages » :

  •  Le langage de programmation de Scratch est événementiel. La diffusion de messages est l’un des types d’événements utilisés.

« Bonnes habitudes de programmation » :

  •  Placer des commentaires dans un programme en facilite la lecture et le partage avec autrui.
  •  Un programme bien écrit, avec des variables et des fonctions bien nommées, ne nécessite pas beaucoup de commentaires

Matériel

Pour l’enseignant :

  •  Fichier Scratch Platformer_V04_correction.
  •  Fichier Scratch Platformer_V05_correction.

Situation déclenchante

La classe se remémore l’état d’avancement du projet, correction de la séance précédente à l’appui. Le lutin joueur, soumis à une gravité virtuelle, est maintenant capable de se poser sur les plateformes, devenues « impénétrables » quand le lutin les aborde par le dessus. Le lutin se déplace vers la droite et vers la gauche en obéissant aux commandes des flèches du clavier.
L’enseignant propose de reprendre les programmes de la fois précédente et de régler le problème identifié : on voudrait que le « Joueur » commence sa chute une fois que le paysage est habillé de dalles.  Il s’agit donc de programmer les fonctionnalités suivantes ajoutées la dernière fois à la carte mentale :

  •  Niveau : informe l’avatar de sa mise en place
  •  Avatar : apparaît et démarre une fois le paysage habillé de dalles

Faire en sorte que le jeu démarre une fois le paysage positionné (collectivement puis par binômes)

L’analyse collective du programme montre que de nombreux sous-programmes sont déclenchés par l’événement « Quand drapeau vert cliqué ». C’est notamment le cas du sous-programme du lutin « Dalles » qui habille le paysage par les dalles, et de tous les sous-programmes du lutin « Joueur ». Il est donc normal que le lutin « Joueur » apparaisse, réponde aux commandes de déplacement et tombe vers le bas de l’écran dès le clic sur le drapeau vert. Ce n’est pas conforme à ce que l’on souhaite, mais c’est ce que l’on a programmé.

Il faudrait plutôt que les scripts du lutin « Joueur » (sauf celui qui gère les initialisations) soient déclenchés par un événement qui survient à la fin de l’habillage du paysage par les dalles. C’est tout l’intérêt du duo d’instructions suivant :

L’instruction « envoyer à tous … » permet de diffuser un message, ce qui constitue un événement. Ce message, puisqu’il est « envoyé à tous », sera reçu par tous les lutins, y compris celui dont un script commande la diffusion du message. La réception du message peut alors déclencher les sous-programmes que l’on souhaite lancer à ce moment-là.

Les élèves reprennent leur programme de la séance précédente et l’enregistrent sous un nouveau nom : Platformer_V05_nom_du_groupe. Ils cherchent, par binôme, comment utiliser les instructions d’envoi et de réception de message pour obtenir le résultat recherché dans le jeu de plateforme. (La mise en commun peut s’appuyer sur le fichier Platformer_V05_correction.)
On positionne l’instruction d’envoi de message à la fin du sous-programme d’habillage du paysage, comme ceci, en donnant un nom explicite au message, par exemple « Paysage_OK » :

L’envoi de ce message signale ainsi que l’habillage du paysage est achevé. Sa réception peut alors déclencher les sous-programmes que l’on souhaite lancer à ce moment-là, c’est-à-dire tous les sous-programmes du lutin « Joueur » sauf celui qui gère les initialisations. Il suffit de remplacer l’instruction « Quand drapeau vert cliqué » par l’instruction « quand je reçois … », en tête des sous-programmes adéquats. Par exemple, le sous-programme qui contrôle les déplacements droite/gauche du lutin « Joueur » devient :

Activité : commenter son programme (par binômes)

L’enseignant explique que le programme commence à être complexe, et qu’il est temps d’y ajouter des commentaires pour mieux s’y retrouver. C’est aussi l’occasion de refaire le point sur l’avancement du projet.
L’ajout de commentaire est accessible par un clic droit sur l’instruction à laquelle on souhaite ancrer le commentaire :

À ce stade, le lutin « Dalles » comporte :

  •  trois sous-programmes :
    •  un qui réalise les initialisations et l’habillage du paysage par les dalles.
    •  un qui assure l’habillage d’une ligne par les dalles.
    •  un qui gère l’apparence des dalles nouvellement posées (lesquelles sont des clones ou des estampillages de la dalle mobile initiale).
  •  deux costumes :
    •  un «explorateur » utilisé seulement pendant l’habillage
    •  un costume de dalle standard du paysage

Le lutin « Joueur » comporte :

  •  quatre sous-programmes :
    •  un qui réalise les initialisations.
    •  un qui gère les déplacements droite/gauche.
    •  un qui gère la chute du lutin et son repos sur les plateformes.
    •  un qui s’occupe de la disparition en bas de l’écran et de la réinitialisation
  •  un costume

Le lutin « Paysage » comporte :

  •  un sous-programme d’initialisation.
  •  un costume correspondant à une certaine disposition des dalles à placer.

Conclusion

L’enseignant échange avec la classe pour formuler une conclusion au sujet des bonnes habitudes de programmation :

  •  Pour faciliter la maintenance d’un programme et son partage avec autrui, il peut être utile de placer des commentaires qui explicitent le rôle des différents sous-programmes.
  •  Pour la même raison, il faut veiller à donner des noms explicites aux variables et aux fonctions. Un programme bien écrit ne nécessite pas beaucoup de commentaires.