Il y a un peu plus de 5 ans, j’ai écrit un article sur l’apprentissage de la programmation au travers du jeu de société. J’y parle de jeux comme Code Monkey.

Le but de ce type de jeu est d’apprendre aux enfants la logique informatique, sans se focaliser sur un langage spécifique. L’aspect ludique est secondaire, et sert avant tout à faciliter l’apprentissage.

Château Aventure est à mi chemin entre le jeu de rôle et le jeu de société. L’un des joueurs incarne le maître du jeu, et s’appuie sur son scénario pour gérer les réactions des joueurs.

Bien qu’il n’ait pas été créé dans ce but, apprendre à programmer avec Château Aventure est-il possible ?

Qu'est ce que la programmation ?

La programmation peut être vue comme un langage commun, dans un processus de communication entre un humain et une machine. Même s’il doit être compris par l’un et par l’autre, ce langage ne s’adresse pas à l’homme. Il sert à donner des instructions à l’ordinateur, qui les traduit ensuite dans son propre langage fait de 0 et de 1.

La programmation suit des règles de syntaxe précises, qui se retrouvent dans les différents langages informatiques.

On peut en citer quelques uns : Javascript, PHP, Python, C/C++, etc. Ils ont tous leur propre domaine d’application.

Lorsqu’on débute, l’apprentissage de la programmation passe par la compréhension de l’algorithme et de la structure logique. L’algorithme est une liste d’instructions, qui est ensuite exécutée, et qui conduit à un résultat.

Éléments clés du langage informatique

Je vais détailler ici quelques éléments clés du langage informatique. Ne prenez-pas peur, rien de trop technique !

Variables

Les informations dont le programme a besoin pour fonctionner sont stockées sous forme de variables. Une variable peut être vue comme une boîte qui contient une valeur. Chaque variable est nommée, pour pouvoir l’identifier et la cibler.

Les variables servent à ranger différents éléments : des chiffres, du texte, une valeur vrai/faux, etc.

En algorithme, une variable est déclarée de cette manière : x = 3, ce qui signifie que la variable x vaut 3.

Lecture et écriture

La lecture et l’écriture permettent à l’utilisateur et à la machine de dialoguer lors de l’exécution d’un programme.

  • Grâce à la lecture, l’utilisateur entre des informations à destination de l’ordinateur
  • L’écriture permet à l’ordinateur d’afficher le résultat à l’écran

Pour mieux comprendre la notion de lecture et d’écriture, il faut se mettre à la place de l’ordinateur. La lecture et l’écriture se font de son point de vue, et non pas de celui de l’utilisateur.

C’est donc l’ordinateur qui lit les informations entrées par l’utilisateur, et qui écrit des messages à afficher.

Par exemple :

  • ECRIRE « Quel est votre jeu préféré ? »
    L’ordinateur affiche à l’écran « quel est votre jeu préféré ? ».
  • LIRE Alchimistes
    L’utilisateur dit à l’ordinateur qu’il s’agit d’Alchimistes.

Il est possible de combiner éléments écrits et variable : si je crée une variable « jeu » au début de mon algorithme, je peux lui donner la valeur « Alchimistes » et faire :

ECRIRE jeu , « est mon jeu préféré »

Boucles

Si une instruction doit être répétée, une boucle peut être utilisée plutôt que de faire du copier/coller. La boucle peut être active un nombre de répétitions précis, ou peut se faire tant qu’une condition reste vraie. Dans ce cas, on ne connaît pas à l’avance le nombre de répétitions.

On peut, par exemple :

  • Répéter 3 fois l’instruction
  • Créer une variable qui vaut 1, créer une boucle avec une instruction qui augmente cette variable de 1, et stopper la boucle lorsque le chiffre atteint 3.

Une boucle conditionnelle peut s’écrire de 2 manières différentes :

  • Tant que la condition est vraie, exécuter les instructions.
    Soit, en algorithme :
    TANTQUE <condition> FAIRE
    <instruction>
    FINTANTQUE
  • Jusqu’à ce que la condition devienne vraie, exécuter les instructions.
    Soit, en algorithme :
    RÉPÉTER <instruction>
    JUSQU’A <instruction>

Tests

Une instruction peut être soumise à un test pour savoir si elle s’exécute ou non. Si la condition est vraie, l’instruction se fait. Sinon, rien ne se passe.

De manière simplifiée, une condition s’écrit de cette manière :

Si la condition est vraie, alors : description de l’instruction.

Soit, en termes algorithmiques :

SI <condition>

ALORS <instruction>

FINSI

Ce test peut être plus complexe et proposer une ou plusieurs alternatives si la condition est fausse.

SI <condition> ALORS <instruction>

SINON SI <condition> ALORS <instruction>

SINON SI <condition> ALORS <instruction>

FINSI

Château Aventure

Château Aventure se base sur les jeux textuels des années 80. Il se positionne entre le jeu de société et le jeu de rôle. L’un des joueurs incarne l’ordinateur et les autres se partagent un personnage, qu’ils incarnent l’un après l’autre.

Les règles du jeu

La boîte est composée de 12 scénarios aux thèmes et à la difficulté très différents.

Chaque aventure se découpe en décors, et les joueurs peuvent interagir avec les différents éléments à la manière d’un jeu de Point & Click. Ils possèdent même un inventaire ou ils stockent les objets récupérés en cours de la partie.

Comme dans le jeu vidéo, ils peuvent sauvegarder leur progression, ce qui leur permet de ne pas tout recommencer s’ils meurent.

Les joueurs qui incarnent le personnage le font en donnant une instruction. Une instruction se compose généralement d’un verbe suivi d’un objet : PRENDRE FLEUR, SORTIR OUEST, MANGER PAIN, etc.
L’ordinateur réagit à chaque instruction suivant les indications de son livret, et peut dire « COMMANDE INCONNUE » si les joueurs font des choses absurdes.

De par sa nature, Château Aventure simule un jeu vidéo. Le joueur qui incarne l’ordinateur exécute en quelque sorte un programme. Il peut agir de façon plus ou moins libre, et suivre totalement le livret ou improviser. S’il suit uniquement le livret, l’humain s’estompe et la différence avec un véritable ordinateur devient minime.

Algorithme

Dans la seconde partie de mon article, j’ai détaillé les éléments qui composent le langage informatique : variables, lecture/écriture, boucles, tests.

Un scénario de Château Aventure se compose de tous ces éléments.

Variables

Les variables servent à stocker des informations, comme l’inventaire du personnage ou les vies restantes.

Les joueurs débutent l’aventure avec un inventaire vide :

inventaire = «  »

Cet inventaire se remplit peu à peu des objets ramassés par le personnage.

inventaire = « fleur, épée »

Lorsqu’un objet est utilisé, il en sort. Ainsi, si un personnage dit « offrir fleur à princesse », la fleur n’apparait plus dans l’inventaire.

inventaire = « épée »

De la même manière manière, les joueurs commencent le scénario avec un certain nombre de vie.

vie = 3

A chaque mort, ce nombre baisse de 1 et les joueurs recommencent au dernier point de sauvegarde ou au début du niveau.

vie = 2

S’ils tombent à 0, ils perdent.

Lecture/écriture

La lecture est réalisée par les joueurs, et l’écriture par l’ordinateur. Lorsqu’un joueur donne un ordre, on utilise la lecture, et lorsque l’ordinateur répond, on utilise l’écriture.

Par exemple :

ECRIRE « Vous arrivez dans une forêt. Les arbres sont si haut qu’on ne voit pas le ciel. A droite, de petites fleurs blanches poussent. Au loin, un cerf boit dans un lac. »

LIRE Prendre fleur

ECRIRE « Vous cueillez une fleur. Vous avez maintenant une fleur dans votre inventaire ».

Le livret n’est pas structuré de cette façon, mais le dialogue ordinateur/personnage fonctionne de comme ça.

Boucles

Il est possible d’utiliser une boucle conditionnelle pour bloquer l’accès à un lieu tant que le personnage ne possède pas un objet spécifique.

Les boucles qui se répètent un certain nombre de fois sont plus compliquées à mettre en place, et ne correspondent pas à l’esprit du jeu : le but est de donner l’impression au personnage que la situation est logique.

Par exemple :

TANTQUE vie > 0 FAIRE

Vivre l’aventure !

FINTANTQUE

Tests

Comme pour les boucles, il est possible d’utiliser les conditions pour bloquer ou non l’accès à certaines parties du jeu.

On peut aussi se servir des boucles pour décrire les réactions possibles aux actions des joueurs.

Par exemple :

SI le héros fouille le bureau

ECRIRE « Le bureau est vide et ne contient rien d’intéressant »

FINSI

Château Aventure comme exercice d'apprentissage

Venons à la partie la plus importante : peut-on apprendre à programmer avec Château Aventure, et si oui comment ?

À mon avis… oui !

Il ne s’agit bien sûr pas d’apprendre un langage spécifique, ni de respecter à la lettre la manière d’écrire un algorithme, mais d’acquérir une logique informatique. Même sans en être conscient, l’ordinateur et les joueurs le manipulent simplement en jouant.

Il est possible d’utiliser Château Aventure comme exercice dans le cadre d’un apprentissage de l’algorithme, en commençant par traduire un scénario existant en algorithme. Et pourquoi pas, dans un seconde temps, en créant un scénario de 0.

Le début peut être assez basique, et se complexifier peu à peu en allant plus loin avec les boucles, et les instructions.

Par exemple, pour la première scène du scénario de démo Port aux Singes :

inventaireplace1 = «  »

inventaireplace2 = «  »

inventaireplace3 = «  »

phraseheros = «  »

ECRIRE « Vous êtes dans vos quartiers. Il y a un lit simple et un bureau digne des plus grands pirates. Une feuille enroulée se trouve sur votre bureau. »

SI phraseheros = « Fouiller lit » ALORS ECRIRE « Vous trouvez deux doublons. Vous avez maintenant deux doublons dans votre inventaire. »

SI inventaireplace1 = «  » ALORS inventaireplace1 = « 2 doublons »

SINON SI inventaireplace2 = «  » ALORS inventaireplace2 = « 2 doublons »

SINON SI inventaireplace3 = «  » ALORS inventaireplace3 = « 2 doublons »

SINON ECRIRE « Vous n’avez plus de place dans votre inventaire »

SINON SI phraseheros = « Fouiller bureau  » ALORS ECRIRE « Il n’y a rien d’autre que la feuille enroulée. »

SI phraseheros = Prendre feuille ALORS ECRIRE « La feuille est dans votre inventaire. »

SI inventaireplace1 = «  » ALORS inventaireplace1 = « feuille »

SINON SI inventaireplace2 = «  » ALORS inventaireplace2 = « feuille »

SINON SI inventaireplace3 = «  » ALORS inventaireplace3 = « feuille »

SINON ECRIRE « Vous n’avez plus de place dans votre inventaire »

FINSI

FINSI

FINSI

SI inventaire = « feuille » ET phraseheros = « Lire feuille » ALORS ECRIRE « Vous déroulez la feuille en prenant soin de dénouer le ruban qui se trouve dessus. Vous lisez : « Tâche importante à réaliser : voler la carte aux trésors ». Le ruban est dans votre inventaire. »

SI inventaireplace1 = «  » ALORS inventaireplace1 = « ruban »

SINON SI inventaireplace2 = «  » ALORS inventaireplace2 = « ruban »

SINON SI inventaireplace3 = «  » ALORS inventaireplace3 = « ruban »

SINON ECRIRE « Vous n’avez plus de place dans votre inventaire »

FINSI

FINSI