Projet « Jeu d’arcade » – Séance 6 Programmer la chute des récompenses
1, 2, 3, codez ! - Activités cycle 4 - Projet « Jeu d’arcade » - Séance 6 : Programmer la chute des récompenses
Discipline dominante |
Mathématiques |
Résumé |
Programmer la chute des récompenses permet aux élèves de revenir sur les variables, les clones, les boucles, les tests et les nombres aléatoires. Les élèves découvrent également la possibilité de commenter leur programme pour en faciliter la lecture. |
Notions |
« Bonnes habitudes de programmation » :
|
Matériel |
Identique à la séance précédente. |
La classe reprend la carte mentale élaborée lors de la Séance 2 et s’intéresse à un autre mécanisme essentiel du jeu : la chute des pièces (ou autres types de récompenses selon le thème choisi). Les élèves remarquent que les récompenses se comportent à peu près comme les pièges, et peuvent donc facilement proposer un découpage en tâches « simples » pour cette fonctionnalité du jeu (puisqu’il s’agit d’un réinvestissement de notions connues, le problème peut être découpé moins finement que précédemment).
Voici par exemple un découpage en 4 étapes :
Difficulté |
Nom de la tâche |
Travail à effectuer |
|
Tâche 1 : faire chuter un nombre aléatoire de récompenses |
|
||
Tâche 2 : augmenter le score chaque fois que l’avatar touche une récompense |
|
||
Tâche 3 : augmenter la vitesse de chute à chaque fois que le score augmente |
|
||
Tâche 4 : commenter son programme |
|
Tâche 1 : faire chuter un nombre aléatoire de récompenses (20 minutes)
Les élèves reproduisent en autonomie les différentes étapes des deux séances précédentes, appliquées cette-fois au nouveau lutin « récompense », en commençant par la création du lutin, jusqu’à la programmation de la chute de ses clones. Le programme ressemble à : L’enseignant organise une mise en commun afin de s’assurer que ces différentes notions (boucles, tests, clones, nombres aléatoires…) soient bien acquises par tout le monde. Note scientifique :
|
Programme de la récompense (pièce) |
Tâche 2 : augmenter le score chaque fois que l’avatar touche une récompense (10 minutes)
Cette tâche reprend également des notions déjà vues auparavant, puisqu’il s’agit de créer, initialiser et utiliser une nouvelle variable : le score. La création et l’initialisation peuvent se faire dans le lutin de l’avatar (le vaisseau), tandis que la modification de cette variable peut se faire dans le lutin [d6][d7]« récompense », en particulier dans le sous-programme qui gère chacun des clones. Il suffit d’ajouter un test « SI le vaisseau est touché, ALORS supprimer le clone et augmenter le score ».
Sous-programme concernant la récompense
Tâche 3 : augmenter la vitesse de chute à chaque fois que le score augmente (15 minutes)
La difficulté du jeu va augmenter au fur et à mesure que le score progresse, ce qui se traduira par le fait que les astéroïdes (et les pièces) tombent de plus en plus vite. Pour modifier la vitesse de chute, il faut que celle-ci soit gérée par une « variable ». Une fois la variable créée, il ne faut pas oublier de lui donner une valeur (sinon, elle prend la valeur 0 par défaut).
Les élèves procèdent comme pour le score et le nombre de vies pour créer leur variable « vitesse_chute ». Ils initialisent sa valeur (par exemple à « -10 »), par exemple dans le programme du vaisseau (où les autres variables ont été initialisées).
Il faut ensuite modifier le programme de l’astéroïde et celui de la récompense pour remplacer « ajouter -10 à y » par « ajouter vitesse_chute à y ».
Modification du programme des récompenses en introduisant la variable vitesse_chute. Note : une modification similaire est nécessaire pour le programme de l’astéroïde.
Il faut désormais modifier la vitesse de chute lorsque le score augmente, de façon à corser la difficulté du jeu. Cette dernière tâche ne présente aucune difficulté d’un point de vue de la programmation. La seule difficulté est d’ordre conceptuel : par convention, nous avons défini une vitesse négative (car aller vers le bas signifie faire décroître l’ordonnée), donc « augmenter la vitesse » signifie ici « augmenter en valeur absolue » (on va en réalité diminuer sa valeur).
Il suffit d’ajouter l’instruction suivante juste en dessous l’augmentation du score, dans le programme de la récompense :
Tâche 4 : commenter son programme (10 minutes)
L’enseignant fait remarquer à la classe combien il peut être difficile pour une personne de lire le programme réalisé par une autre ou, pour une même personne, de comprendre son propre programme si l’on y a pas touché depuis longtemps.
Il explique que tous les langages de programmation (Scratch inclus) permettent d’ajouter des commentaires (ce sont des indications écrites en français – ou en anglais – qui ne sont pas interprétées par la machine et qui s’adressent aux lecteurs humains).
Pour créer un commentaire, il suffit de cliquer avec le bouton droit sur une instruction dans le programme. Il est inutile de tout commenter : il faut aller à l’essentiel !
Exemple de commentaire dans le programme de l’astéroïde
Les élèves passent quelques minutes à commenter leur programme.
Conclusion
Les bonnes habitudes de programmation évoquées lors de cette séance sont recopiées dans le cahier de projet :
- 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.
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016-2017. Publié sous licence CC by-nc-nd 3.0.