TD 1

Plus ou moins

Un jeu, son arbre, et le code qui va avec

Partie 1

Le jeu

Les règles

  • L’ordinateur choisit un nombre entre 1 et 100.
  • Le joueur a 6 essais pour le deviner.
  • À chaque essai, l’ordinateur indique s’il faut proposer plus grand ou plus petit.

À vous de jouer

Tous ensemble

Faisons deux ou trois parties : une gagnée, une perdue.

  • La classe propose un nombre, on le saisit.
  • On lit la réponse de l’ordinateur, et on recommence.

Notez au passage tous les messages différents que le jeu sait afficher.

Partie 2

Exercice 1

Quel message dois-je afficher au joueur ?

Plus grand !

Plus petit !

Gagné !

Perdu !

Attention, c’est un programme

  • Aucune intervention humaine entre le point d’entrée de l’arbre et les solutions.
  • L’arbre répond pour une tentative du joueur.
  • Si le joueur gagne en 4 essais, l’arbre est joué 4 fois en entier.

À vous

Dessinez l’arbre qui répond à la question, avec ses quatre actions.

Au tableau

Chacun son tour

  • Un premier élève écrit le problème principal et les quatre actions.
  • Un deuxième ajoute la condition qu’il pose en premier.
  • Les suivants complètent, une condition à la fois.
  • On termine en rejouant une partie complète sur l’arbre du tableau.

Quelque chose à retenir de cet exercice ?

Cherchons ensemble

  • Par quoi avez-vous commencé pour dessiner votre arbre ?
  • Combien de fois l’arbre est-il joué dans une partie de six essais ?
  • Aviez-vous tous le même arbre que votre voisin ?

Partie 3

Exercice 2

Le même jeu, écrit en JavaScript

/* Quel message dois-je afficher ? */
function getLabel(essai) {
  if (nbEssai >= 6) {
    return 'Perdu !';
  }
  if (essai === hasard) {
    return 'Gagné !';
  }
  if (essai < hasard) {
    return 'Plus grand !';
  }
  return 'Plus petit !';
}

Chaque « if » est une condition, chaque « return » une action.

Lire le code comme un arbre

À vous

Dessinez l’arbre qui correspond exactement à ce code, sans regarder le vôtre.

Comparez ensuite les deux arbres, condition par condition. Une différence change le résultat du jeu. Laquelle, et dans quel cas ?

Au tableau

Ensemble

  • On dessine l’arbre du code à côté de celui de l’exercice 1.
  • On les superpose du regard, condition par condition.
  • On cherche une partie où les deux arbres ne disent pas la même chose.

La différence

  • Le code teste le nombre d’essais avant de vérifier si le joueur a trouvé.
  • Votre arbre pose « Est-ce le bon nombre ? » en premier.

Un joueur qui devine le bon nombre à son sixième essai reçoit « Perdu ! ».

On peut le vérifier tout de suite sur la démo.

Le code corrigé

/* Quel message dois-je afficher ? */
function getLabel(essai) {
  if (essai === hasard) {
    return 'Gagné !';
  }
  if (nbEssai >= 6) {
    return 'Perdu !';
  }
  if (essai < hasard) {
    return 'Plus grand !';
  }
  return 'Plus petit !';
}

Deux conditions échangées, et le jeu devient juste.

Ce que dit cet exercice

  • L’ordre des conditions change le résultat. Deux arbres avec les mêmes losanges ne disent pas la même chose.
  • Un arbre juste dans 99 % des cas reste un arbre faux.
  • Un programme se lit comme un arbre, et un arbre s’écrit presque comme un programme.

Partie 4

Exercice 3

Une variante

Le jeu affiche « Chaud ! » lorsque le nombre proposé est à moins de 5 du nombre secret.

À vous

Modifiez votre arbre pour tenir compte de cette règle.

Un seul losange suffit : où le placer ?

Au tableau

Ensemble

  • Quelqu’un vient glisser le nouveau losange dans l’arbre du tableau.
  • On rejoue trois cas : une victoire, un sixième essai raté, et un nombre tout proche.
  • Si un cas donne le mauvais message, on déplace le losange et on recommence.

La correction

Arbre de décision du jeu du plus ou moins répondant à « Quel message afficher au joueur ? ». Il teste si le nombre proposé est égal au nombre secret, si c’est le 6e essai, puis s’il est plus petit que le nombre secret.
Le nouveau losange se glisse après « Est-ce le 6e essai ? » et avant « Le nombre proposé est-il plus petit ? ».

Le placer plus haut ferait afficher « Chaud ! » à la place de « Gagné ! » ou de « Perdu ! ».

Ce qu’il faut retenir de ce TD

  • L’ordre des conditions change le résultat.
  • L’arbre est rejoué en entier à chaque événement, ici à chaque tentative du joueur.
  • Les réponses possibles au problème principal sont les actions en bout de chemin : les lister, c’est déjà avoir la moitié de l’arbre.

La suite

À vous de jouer

Le TD 2 : le Black Jack, et un arbre bien plus grand.

1 / 1