Règles du jœufsjeu
Les pièces
- Les crocos affamés mangent tout ce qui est devant eux, même si ce sont des familles entières :
- Les vieux crocos n’ont plus faim, ils ne mangent rien, et ne servent qu’à garder leur famille. Mais ils meurent quand on n’a plus besoin d’eux
- Les œufs sont de futures familles, sauf s’ils sont mangés avant d’éclore !
Les familles
- Une famille « petite » :
Un croco qui garde un œuf [1] !
- Une famille « moyenne » :
Un croco vert et un croco rouge qui garde un œuf vert et un œuf rouge. Pour être plus précis, nous dirons qu’un croco vert garde un croco rouge qui lui-même garde un œuf vert et un œuf rouge [2] ! - Une famille « grande » :
Un croco jaune qui garde un croco vert qui garde un croco rouge qui garde un œuf vert, un vieux croco qui lui-même garde un œuf jaune et un œuf vert, et un œuf rouge [3] !
« Changer de couleur »
- Un croco affamé ne peut rien manger qui soit de sa couleur ou de celle d’un membre de sa famille
- Il faut changer les couleurs communes dans une des deux familles
- Puis « manger »
- « Manger encore... »
- « Manger toujours... »
- Et « manger » jusqu’à ce qu’il n’y ait plus rien à manger !
« Le vieux croco »
Il ne reste plus qu’une petite règle : celle du vieux croco !
- Le vieux croco ne mange rien, il est trop vieux !
- Il faut régler les affaires de famille d’abord !
- Lorsque le vieux croco ne garde plus qu’un seul croco, il meurt !
- Puis la loi de la jungle reprend ses droits...
- Jusqu’à ce qu’il n’y ait plus rien à « manger » !
Le jeu « on-line »
Vous pouvez le trouver ici ! Ce jeu a été testé avec Chrome et Firefox. La vitesse d’exécution de Chrome restant incomparable avec tout autre navigateur, on ne saurait vous conseiller d’en utiliser un autre...pour ce jeu bien entendu !
La version en ligne du jeu des crocos se compose d’un « plateau de jeu » et d’un « panel glissant ». A l’aide du panel, on peut fabriquer des configurations de familles de crocos et observer, étape par étape, l’évolution de cette configuration jusqu’à ce qu’il n’y ait plus rien a manger !
Le panel glissant
îcone | usage |
---|---|
Permet de jouer un tour d’animation | |
Permet de jouer l’animation en boucle jusqu’à la fin | |
Permet d’interrompre l’animation en boucle | |
Remet à zéro la console et efface tous les graphiques | |
Affiche/Cache la console | |
Affiche/Cache les paramètres supplémentaires | |
Affiche/Cache le nom des variables | |
Affiche/cache le nom des étapes | |
Bascule entre le graphe et les crocos | |
Affiche une aide interactive pour faire du λ-calcul en CoffeeScript |
Bouton de selection des exercices du tutoriel :
Glissière permettant de régler le temps d’animation de chaque étape du jeu :
Glissière permettant de d’agrandir ou de réduire la taille des crocos et des œufs :(zoom)
Boutons de construction graphique d’un jeu de crocos :
Ce bouton est le plus important, parce qu’il permet d’inventer son propre jeu. De ce point de vue, le jeu des alligators est plutôt un méta-jeu, ce qui a de l’importance puisque
- le jeu est à zéro joueur, il n’y a pas de but à atteindre ni d’adversaire à battre ;
- on évolue dans un micromonde qu’il est intéressant d’explorer.
Pour transformer ce jeu sans joueur en jeu à un joueur, on peut choisir une configuration d’arrivée et demander comment y parvenir. Mais là ce n’est plus un jeu, c’est un exercice d’algorithmique. Ah bon ? Parce qu’il y a une différence ?
Au cas où l’enfant a trouvé un jeu intéressant, il peut être tenté d’en communiquer la configuration initiale. Pour cela, il y a la console dont le contenu peut être copié-collé...
Le Tutoriel
Le tutoriel se compose de 8 exercices qui permettent de prendre en main l’interface du jeu et en particulier la construction graphique d’une famille de crocos par glisser déposer :
C’est donc idéalement par là qu’il faut commencer ...
La console
La console permet de taper des lambda-expressions et les convertir en « configurations crocos » en appuyant sur la touche en haut à gauche du clavier (de la console). L’opération inverse (obtenir une lambda expression depuis une configuration de crocos) est possible avec la touche adjacente.
Cette console est importante, elle permet en définitive, de comprendre que le lambda-calcul permet de réaliser des opérations qui peuvent s’apparenter à des calculs arithmétiques qui sont à la base de tout autre calcul. C’est ainsi que les lambda-expressions prouvent leurs capacités de calcul.
Voici quelques expressions toutes faites telles que données dans la console :
bouton | λ-expression |
zero | (λf.λx.x) |
one | (λf.λx.(f x)) |
two | (λf.λx.(f(f x))) |
three | (λf.λx.(f(f(f x)))) |
four | (λf.λx.(f(f(f(f x))))) |
five | (λf.λx.(f(f(f(f(f x)))))) |
succ | (λn.λf.λx.f (n f x)) |
plus | (λm.λn.λf.λx.m f (n f x)) |
mult | (λm.λn.λf.m (n f)) |
pow | (λb.λe.e b) |
pred | (λa.λf.λx.a (λg.λh.h (g f)) (λu.x) (λu.u)) |
sub | (λm.λa. (a (λn.λf.λx. n (λg.λh.h (g f)) (λu.x) (λu.u))) m) |
true | (λa.λb.a) |
false | (λa.λb.b) |
and | (λp.λq.p q p) |
or | (λp.λq.p p q) |
not | (λp.λa.λb.p b a) |
if | (λp.λa.λb.p a b) |
Y | (λf.(λx.(f(x x)) λx.(f(x x)))) |
Le jeu des crocos et son set de règles : comme une notion d’infini !?
- Le jeu a sa page github ;
- pour en savoir plus sur la population qui évolue cycliquement ci-dessus, voir l’article sur le combinateur Y.
- Pour voir comment on peut faire de la logique propositionnelle, voir cet article.
- Pour voir comment on peut faire de l’arithmétique avec ce jeu, voir cet article sur la construction du nombre.
Commentaires