Algorithmique et programmation

Publié le Jun 21, 2016 Modifié le : Oct 25, 2017

Écrire à l'auteur

Le  Tuesday, June 21, 2016

Jeu dans un labyrinthe

Construction d'un jeu dans un labyrinthe à l'aide de Scratch

  • Jeu dans un labyrinthe

     

     

     

     

     

    Présentation de l’activité


     

     

    Le but du problème est de reproduire un jeu dans un labyrinthe, identique à celui-ci puis de lui apporter des améliorations. On y consacrera une à deux heures.

     

     

     

     

     

     

     

    Public


     

     

    Cette situation s'adresse à des élèves de cycle 4 ayant déjà pris le logiciel Scratch en main, par exemple pour des constructions de figures.

     

     

     

     

     

    Objectifs


     

     

    • Ecrire, tester, corriger un programme en réponse à un problème donné.

     

    • Découvrir (ou réinvestir) les notions de déclenchement d'une action par un événement extérieur et d'instructions conditionnelles.

     

    • Décomposer un problème en sous-problèmes afin d'en structurer un programme.

     

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

     

     

     

     

     

    Prérequis


     

     

    Mathématiques

     

    • Repérage dans le plan.

     

     

    T.I.C.E.

     

     • Scratch : notions de programmation par blocs avec Scratch.

     

     

     

     

     

    Déroulement de l’activité


     

     

    Présentation

     

     

    On annonce aux élèves que leur travail va consister à programmer un jeu dans un labyrinthe.

     

    Au vidéoprojecteur, on pourra le présenter à l'aide du fichier Labyrinthe.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 les nouveaux blocs qui vont être mis en jeu dans sa programmation,

     

     

    Laby14

     

     

    on pourra :

     

    - S’appuyer sur le programme de démonstration : prog03

     

    - 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.

     

     

    Afin que chacun puisse analyser le jeu à programmer, on pourra diffuser ce lien auprès des élèves : http://scratch.mit.edu/projects/embed/111629503/?autostart=false

     

     

    Pour que les élèves s'approprient et réinvestissent plus facilement les nouveaux blocs, on pourra diffuser ou laisser visible le programme de démonstration "Prog03".

     

     

    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, peut-on trouver des blocs pour les programmer ?

     

     

    Les deux lutins seront cherchés et choisis dans la bibliothèque de lutins. L'arrière-plan sera diffusé dans les dossiers personnels des élèves.

     

     

    Laby09

     

     

    Au cas par cas et selon les besoins, on questionnera à nouveau pour guider davantage dans la construction des sous-programmes :

     

     

    - Au démarrage du jeu, comment amener les lutins à leur emplacement initial, avec la bonne orientation et la bonne taille ?

     

    Laby04

     

     

    - Quels blocs utiliser pour orienter et faire avancer le chat à l'aide des flèches du clavier ?

     

     

    Laby05

      

     

    ou

     

     

     Laby06

     

    Cette dernière stratégie nécessitera d'inclure les blocs précédents au sein d'une "boucle infinie" ou d'un "répéter jusqu'à" mais elle présente l'avantage d'offrir des déplacements beaucoup plus fluides, notamment au moment des changements de direction.

     

      

    - Quels blocs utiliser pour détecter la collision du chat avec un mur du labyrinthe ? Comment le ramener dans sa position initiale ?

     

     Laby07'

     

     

    - Quels blocs utiliser pour détecter la collision du chat avec la souris et terminer le jeu ?

     

     Laby11'

     

     

     

     

    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 du chat (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".

     

     

    Laby12

     

     

     

     

     

    Prolongements possibles


     

     

    • En cas de contact entre le chat et les murs du labyrinthe, on souhaite que le jeu se poursuive sans pour autant que le lutin puisse les traverser.

     

     

    • On souhaite intégrer un chronomètre qui mesure le temps mis pour atteindre la souris.

     

    En imaginant un nouveau programme de démonstration, on pourra alors présenter les blocs :

     

    calcul09

     

    La variable "chronomètre" stocke le temps écoulé (en seconde) depuis l'utilisation du bloc "réinitialiser le chronomètre".

     

     

    • On souhaite rajouter un dragon qui se déplace aléatoirement au-dessus du labyrinthe et qu'il faut éviter.

     

     

    • On souhaite rajouter des "points de vie" qui décroissent si les murs du labyrinthe (ou le dragon) sont touchés. Le jeu s'arrête si le nombre de "points de vie" tombe à zéro.

     

     

    • On souhaite rajouter dans le labyrinthe une "pomme" qui si elle est touchée par le chat, disparait et redonne des "points de vie".

     

     

    • On souhaite construire un labyrinthe plus complexe (dessiner un nouvel arrière-plan).

     

     

     

     

     

    Documents utiles


     

     

    • Fichier Labyrinthe.sb2

     

    • Arrière-plan

     

    • Fichier Labyrinthe2.sb2 (avec améliorations)