Jouer au Nim avec Blockly

Le jeu de Nim est mentionné dans le nouveau programme de mathématiques du cycle 4 (5ème, 4ème et 3ème) qui doit être appliqué cette année. A titre d'exemple, l'épreuve des batonnets de l'émission Fort Boyard rentre dans cette vaste famille de jeux.
Vous trouverez dans la suite de l'article un laboratoire pour jouer/expérimenter/créer différentes variantes et ainsi travailler à la fois le calcul mental et en même temps cette nouvelle partie du programme intitulée "Algorithmique et programmation".

Cet article a été largement inspiré par les travaux et les remarques d'Alain Busser
et de Patrick Raffinat ainsi que par la lecture de l'article intitulé "Raconte-moi une Nimstoire".

Pour une manipulation des blocs en plein écran (recommandé sur tablette en particulier), vous pouvez utiliser ce lien.

p 115 de "Problèmes plaisants et délectables qui se font par les nombres"

Pour une première manipulation des blocs de Blockly, on peut commencer par jouer à deux (un joueur humain en bleu contre un autre en rouge) avec cette version d'Alain Busser ou affronter directement AutoMath ci-dessous en cliquant sur le bouton "lancer" qui se trouve dessous les blocs qui décrivent le programme du jeu.
Le principe est simple : chacun son tour on ajoute 1, 2 ou 3 allumettes, le premier qui dépose la 21ème a gagné.

Arriverez-vous à trouver une stratégie, un algorithme, qui permette de gagner à pratiquement tous les coups ?


Arriverez-vous à modifier le programme pour qu'il respecte les règles du jeu de Fort Boyard ?
Puis réussirez-vous à trouver une stratégie pour gagner à tous les coups si on vous laisse commencer ?


Vous pourrez même pousser la personnalisation jusqu'à effectuer un tirage aléatoire pour "n" et pour "max" avec certaines limites. Puis, pourquoi pas, vous lancer dans l'élaboration d'une version à plusieurs joueurs humains...

Pour rendre le jeu plus intéressant, on peut modifier la contrainte concernant le nombre d'objets à enlever. On peut, par exemple, autoriser de n'enlever qu'un nombre qui soit un diviseur du nombre actuel d'objets.
Exemple : il reste 12 allumettes, alors le joueur qui a la main peut en enlever 1, 2, 3, 4 ou 6 mais pas 7 car ce n'est pas un diviseur, ni 12 car sinon il n'en resterait plus. On peut alors imaginer qu'un joueur qui se trompe est déclaré perdant.

Arriverez-vous à programmer cette nouvelle variante ?

Pour vous aider à modifier la manière de jouer de l'Automath, vous trouverez ci-dessous un "assemblage" à réaliser puis à placer convenablement. Il vous restera cependant plusieurs autres modifications à effectuer. Pour exemple, je vous mets également à disposition cette autre variante où les joueurs doivent enlever uniquement des carrés parfaits : cliquez-ici pour la lancer.


Pyramidal matches

Le titre de cet onglet est une réplique d'un des acteurs du film "L'Année dernière à Marienbad" qui joue à une variante où les allumettes sont disposées comme ci-contre. Les joueurs, à tour de rôle, peuvent prendre le nombre d'allumettes qu'ils veulent mais au moins une et dans la même rangée. Ici, le gagnant est celui qui prend la dernière allumette.
La stratégie gagnante de cette version du jeu est assez complexe à comprendre et donc à programmer, en revanche vous avez peut-être découvert celle qui permet d'augmenter ses chances de gains (voire de gagner à tous les coups si on vous laisse choisir qui commence) dans la variante par soustraction abordée dans le deuxième onglet. Si ce n'est pas le cas, une petite recherche sur l'Internet devrait vite vous donner satisfaction...

Arriverez-vous à programmer un joueur AutoMath qui laisse peu de chance à son adversaire ?


Comme dans l'onglet précédent, pour vous aider à comprendre ce qui est attendu et pour convaincre les plus sceptiques qu'une stratégie gagnante existe, je vous mets à disposition cet exemple où vous pourrez constater que "je gagne toujours..." : cliquez-ici pour la lancer.


Ajouter vos commentaires

Ajouter un commentaire en tant qu'invité :

0 / 700 Restriction des caractères
Votre texte doit contenir moins de 700 caractères
Pour information, l'adresse IP de votre ordinateur sera enregistrée quand vous cliquerez sur Envoyer.