• Ecrire, tester, corriger un programme en réponse à un problème donné.
• Réinvestir les notions de déclenchement d'une action par un événement extérieur, de boucles et d'instructions conditionnelles.
• Décomposer un problème en sous-problèmes afin d'en structurer un programme.
• Réinvestir des connaissances de géométrie (angles, repérage dans le plan).
Prérequis
Mathématiques
• Notion d'angle, angles supplémentaires.
• Repérage dans le plan.
T.I.C.E.
• Bases de la programmation à l'aide de Scratch (déplacement d'un lutin, boucles, instructions conditionnelles)
Déroulement de l’activité
Présentation
On annonce aux élèves que leur travail va consister à programmer un jeu de Pong.
Au vidéoprojecteur, on pourra le présenter à l'aide du fichier Jeu de pong.sb2(mettre la scène en mode "plein écran" pour ne pas montrer l'aire des scripts) ou de cette version en ligne.
S'il est nécessaire de faire découvrir aux élèves des nouveaux blocs, on pourra, selon les besoins :
- S’appuyer sur les programme de démonstration : prog04, prog06 et prog08.
- Faire réfléchir les élèves à une ébauche d’algorithme (en langage naturel) et au cours d’une mise en commun s’interroger sur les blocs dont il faudrait disposer pour le programmer. Le professeur montrera alors l’existence de ces blocs.
Temps de recherche
La programmation d'un algorithme permettant d'obtenir instantanément une évaluation de la pertinence et de la solidité de cet algorithme, on mettra des ordinateurs à disposition des élèves.
Pour que les élèves s'approprient et réinvestissent plus facilement les nouveaux blocs, on pourra diffuser ou laisser visible les programmes de démonstration "Prog04", "Prog06" et "Prog08".
Si nécessaire, on questionnera, au cas par cas, pour permettre à chacun d'avancer dans l'élaboration de son programme :
- Pour chacun des objets (lutins), quelles sont les actions à prendre en compte et à programmer ?
- Pour chacune de ces actions, quels blocs utiliser ?
Les deux lutins seront cherchés et choisis dans la bibliothèque de lutins. L'arrière-plan pourra être diffusé dans les dossiers personnels des élèves. Ils pourront aussi en choisir un autre dans la bibliothèque, en dessiner un ou envisager de travailler sur "fond blanc". Ces choix influeront, plus tard, sur la condition d'arrêt du jeu (bord inférieur touché).
Au cas par cas et selon les besoins, on questionnera à nouveau pour guider davantage dans la construction des deux sous-programmes :
• Programmer le déplacement de la raquette
- Au démarrage du jeu, comment amener la raquette dans sa position initiale ?
- Quels blocs utiliser pour commander la raquette à l'aide des flèches "gauche" et "droite" du clavier ?
ou
ou, en utilisant une "boucle infinie". Cette solution présente l'avantage d'offrir un déplacement de la raquette beaucoup plus fluide, notamment au moment des changements de direction.
• Programmer le déplacement de la balle
- Quel bloc utiliser pour mettre la balle dans sa position d'origine ? Pour la réorienter ? Pour la faire se déplacer ?
Les valeurs à donner à l'orientation initiale et au déplacement sont des variables que les élèves ajusteront par eux même après avoir exécuté leur programme. A la demande, on pourra présenter le bloc permettant d'obtenir une valeur entière, choisie aléatoirement entre deux bornes :
- Quels blocs utiliser pour programmer l'arrêt de la balle ?
Si l'arrière-plan à un bord inférieur d'une couleur unie, on pourra utiliser un capteur de couleur pour détecter la sortie de la boucle. Sinon, on pourra travailler en considérant l'ordonnée de la balle.
- Quels blocs utiliser pour détecter la collision avec la raquette ? Comment alors réorienter la balle ? Dans quelle direction ?
Différentes stratégies peuvent être envisagées pour redéfinir l'orientation de la balle après son rebond :
- une réorientation fixe (par exemple : 30°)
- une orientation aléatoire
- une orientation conforme aux lois de la physique. Dans ce cas, on sera amené à modéliser le rebond et à effectuer des calculs d'angles pour établir que les directions "avant rebond" et "après rebond" sont supplémentaires.
Pour permettre au plus grand nombre d'achever leur programme, on prolongera le travail des élèves les plus rapides en leur demandant d'imaginer des améliorations pour ce jeu (voir "prolongements possibles" ci-dessous).
Bilan final
Afin que les élèves gardent une trace de leur travail, les programmes pourront être imprimés.
On reviendra sur la construction du programme (en le reconstruisant au vidéoprojecteur avec l'aide de la classe ou en projetant et en commentant ceux réalisés par les élèves). On mettra alors en avant les différentes stratégies pour répondre à un même sous-problème, les instructions nouvelles et quelques "schémas type".
• On souhaite l'affichage d'un score qui est incrémenté de 1 à chaque rebond de la balle sur la raquette.
Ce prolongement peut être utilisé pour découvrir ou réinvestir la notion de variable. Pour qu'il puisse bénéficier à tous, on pourra diffuser dans les dossiers personnels des élèves un fichier pong.sb2 opérationnel qu'ils auront alors en charge de modifier pour y intégrer un score.