En 2019, dans le cadre de (feu) l’option I.C.N. « Informatique et Création Numérique » de première, un groupe d’étudiant.e.s avait suivi l’enseignement d’exploration du même nom en seconde, et dont certain.e.s suivent aujourd’hui la spécialité I.S.N « Informatique et Sciences du Numérique » de terminale pour la dernière année de son existence, comme le baccalauréat qui meurt avec cette nouvelle décennie.
Pour promouvoir la nouvelle spécialité de première ouverte à la rentrée de
septembre 2019, on a proposé à ce groupe de réaliser un projet collaboratif que nous présenterions lors de nos journées portes ouvertes, il y a bientôt un an.
Nous ne nous voyions que deux heures par semaine le vendredi après-midi,
et il s’agissait d’un vrai challenge, motivant mais aussi très certainement trop ambitieux pour cet enseignement optionnel.
L’idée avait germé lors d’une visite au palais de la découverte à Paris : une grille de labyrinthe mettait en lumière les parcours en profondeur ou en largeur, et de petits panneaux expliquaient les concepts alors qu’on pouvait suivre des chemins de couleurs différentes illustrant les différentes stratégies à l’écran.
Notre projet ICN 2019
Nos visiteurs ont pu jouer « contre » un bot, qui effectuait un parcours « toujours le plus à gauche », avec une partie de l’écran masquée, un effet « lampe de poche » à l’aide d’un calque en png qu’on superposait à la fenêtre de jeu, avec un score qui décroissait en même temps que le chrono s’écoulait. On pouvait « enlever » le calque pour voir tout le labyrinthe, mais on perdait des points, on pouvait aussi afficher un des chemins les plus courts à l’aide d’une autre touche, et il fallait arriver avant le bot.
Le labyrinthe était creusé aléatoirement à chaque lancement, avec un départ sur la première ligne (en haut) et une arrivée sur la dernière (en bas). On a utilisé la bibliothèque pygame de python pour afficher une fenêtre graphique et récupérer les événements utilisateurs.
Les élèves, par binômes, avaient des missions particulières à réussir :
• un menu d’accueil,
• un tableau des scores,
• les fonctions qui permettent de creuser le labyrinthe,
• les fonctions qui retournent un chemin optimal,
• le déplacement automatique « en profondeur » du « bot » ,
• le déplacement du personnage contrôlé par le visiteur,
• l’affichage d’un calque « flashlight » ,
• le calcul du score renvoyé par la fonction jeu(),
• la saisie du pseudo,
• etc.
Le tout a abouti avec un peu, beaucoup parfois, d’aide du professeur et toutes ces fonctions ont été agrégées dans un programme qui nous a donné satisfaction.