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 « Programmation d’un jeu de plateforme » perfectionnement en Scratch


1, 2, 3, codez ! - Activités cycle 4 - Projet « Programmation d'un jeu de plateforme » : perfectionnement en Scratch

Avertissement

Ce projet s’adresse à des élèves ayant déjà une bonne expérience en programmation Scratch. Pour plus d’informations sur la programmation en Scratch (ou ses alternatives) : pourquoi, comment, etc., se référer au chapitre « Introduction générale à Scratch ».

Pour une classe composée essentiellement de débutants ou faux-débutants, nous suggérons de mener le projet « Programmons un jeu d’arcade : initiation à Scratch ».

Disciplines concernées et liens avec les programmes

Les programmes de 2016 introduisent des notions d’informatique aussi bien en mathématiques qu’en technologie. Nous conseillons de mener ce projet dans le cadre du cours de mathématiques afin de cibler l’enseignement de technologie vers des projets qui mettent davantage en avant l’aspect matériel, comme la robotique (cf. projets "Robotique avec Thymio" ou "Domotique avec Arduino").
Les programmes 2016 de mathématiques comportent un chapitre « algorithmique et programmation » qui justifie parfaitement un tel projet :

Algorithmique et programmation

Au cycle 4, les élèves s’initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d’un langage ou d’un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s’entraînent au raisonnement.

 Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas.

 Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné.

 Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs.

 Programmer des scripts se déroulant en parallèle.

  •  Notions d’algorithme et de programme.
  •  Notion de variable informatique.
  •  Déclenchement d’une action par un évènement, séquences d’instructions, boucles, instructions conditionnelles.
  •  Notion de message échangé entre objets.

Le professeur de mathématiques peut mener le projet seul, ou en collaboration avec d’autres professeurs (notamment d’arts plastiques pour le design des différents éléments du jeu et de physique-chimie pour la réflexion sur la programmation d’un moteur physique : chute libre, frottement, rebond. Ces possibilités sont indiquées sous forme de prolongements, sans faire l’objet d’une description détaillée.

Objectifs et résumé

L’objectif du projet est de créer un jeu dit « de plateforme » à l’aide de l’environnement de programmation Scratch. Tout au long de ce travail, les élèves découvrent et s’approprient de nombreux concepts propres à l’informatique : algorithme, variable, test, boucle, langage, bug, événement, fonction, etc.

Le projet ne s’organise pas en « séances » mais en « étapes », car il est illusoire, en pédagogie de projet, d’imaginer que tous les élèves avancent au même rythme. Ce découpage en grandes étapes et tâches élémentaires permet aux différents groupes de travailler en autonomie et d’avancer à leur vitesse.
Pour certains, une étape prendra 1 séance de 55 minutes, quand pour d’autres, elle nécessitera 2, voire 3 séances. Le degré d’aboutissement final du projet ne sera donc pas le même selon les groupes, ce qui n’est pas un problème en soi, dès lors que chaque groupe a réussi à produire un jeu fonctionnel.
On peut accélérer le déroulement, tout en réduisant l’inhomogénéité et en augmentant les interactions entre élèves, en tirant profit des groupes les plus avancés : ils peuvent être sollicités pour aider d’autres groupes, notamment si l’écart se creuse à un point qui rend difficiles les mises en commun. Celles-ci doivent être positionnées à un moment où la plupart des groupes ont achevé le travail sur lequel porte la mise en commun.

Séance Titre Dominante Résumé

1 Qu’est-ce qu’un jeu de plateforme ? Mathématiques Après la démonstration d’un jeu de plateforme existant par l’enseignant, les élèves constituent un listing des fonctionnalités d’un tel jeu. Ils organisent ces fonctionnalités sous la forme d’une carte mentale qui servira de feuille de route pour le projet.

2 Programmer les déplacements latéraux du lutin « Joueur » Mathématiques Cette étape permet aux élèves de se remémorer Scratch, en programmant la fonctionnalité de déplacement latéral du lutin « Joueur » sous l’action des flèches du clavier.

3 Programmer la chute du lutin « Joueur » Mathématiques La classe décide de programmer la chute du lutin « Joueur ». Cela suppose de créer un « moteur physique » qui simule l’effet de la gravité. Les élèves travaillent à partir d’une feuille de route de programmation fournie par l’enseignant, qui décompose le travail en tâches simples. Les élèves sont amenés à créer et à manipuler des variables.

4 Positionner des éléments de plateforme : les dalles Mathématiques Afin que le lutin « Joueur » évolue dans un paysage contenant des plateformes, les élèves programment la fonctionnalité de positionnement des éléments de plateforme sur la scène. Ils démarrent d’un programme fourni par l’enseignant qu’ils modifient et complètent.

5 Faire reposer le lutin « Joueur » sur les plateformes Mathématiques Les élèves créent leur propre feuille de route de programmation pour programmer la fonctionnalité de repos du lutin « Joueur » sur les plateformes. Différents algorithmes peuvent être envisagés, qui tous nécessitent d’utiliser des expressions conditionnelles. Certains algorithmes conduisent à des bugs. Pour résoudre les bugs, les élèves analysent leur programme pas à pas.

6

Démarrer le jeu lorsque le paysage est prêt Mathématiques 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é.

7

Faire sauter le lutin « Joueur » depuis les plateformes Mathématiques Les élèves programment le comportement de saut du lutin « Joueur » depuis les plateformes. Plusieurs algorithmes peuvent être envisagés, mais certains sont plus commodes que d’autres à mettre en œuvre.

8 Gérer les rebonds sur les bords verticaux des plateformes Mathématiques Les élèves programment le comportement de rebond du lutin « Joueur » sur les rebords verticaux des plateformes. Puis ils créent des fonctions pour chacun des comportements déjà programmées.

9 Créer deux niveaux et les enchaîner Mathématiques Les élèves créent deux « niveaux » de jeu et les coordonnent. Cela suppose de créer un élément de plateforme correspondant à la sortie d’un niveau. C’est l’occasion de remplacer toutes les valeurs numériques du programme par des variables initialisées dans une fonction appropriée.

Scénario conceptuel