.. -*- mode: rst -*- .. -*- coding: utf-8 -*- ================================== La marelle romaine : les solutions ================================== :date: 2013-06-01 :tags: Jeux :logo: /images/marelle/logo.jpg :summary: |summary| .. image:: {filename}/images/marelle/extract.jpeg :width: 150 :class: floatleft :alt: Graphique |summary| .. |summary| replace:: La marelle est un jeu dont on ne connait pas précisément les origines. On en retrouve toutefois les traces sur certains sites archéologiques ainsi que dans des textes qui nous sont parvenus (Ovide). Le jeu est relativement simple, et existe sous différentes formes. La version que je présente ici est une version à neuf cases. On trouve cette version sous le nom de « marelle romaine » auprès de créateurs de `jeux historiques`_ ou médiévaux. Elle a la particularité d'avoir un point central, présent à l'intersection de quatres lignes de jeu. .. _jeux historiques: http://www.les7cailloux.com/jeu-de-marelle.html D'autres sites se sont déjà intéréssés au rapport entre `mathématiques et le jeu de marelle`_ et je ne vais pas chercher à les reprendre ici. Par contre, j'ai essayé de tracer l'ensemble des parties possibles dans un graphe en fonction des différentes actions des joueurs (en partant du principe qu'un joueur n'irait jamais jouer un coup qui lui est directement défavorable). Un extrait du graphique final est présenté ci contre, et le résultat peut être visualisé en ligne. .. _mathématiques et le jeu de marelle: http://bernard.koch.free.fr/Maths/Themes/Marelle/La_marelle.htm Cliquez sur l'image pour la voir en taille réelle : |visualisation|__ .. |visualisation| image:: {filename}/images/marelle/mini_jeu.jpeg .. __: {filename}/images/marelle/jeu.jpg A strange game. The only winning move is not to play ==================================================== Chaque dessin représente un plateau, avec ses pions blancs et noirs. Les lignes permettent de suivre les coups des joueurs et d'aller à une configuration à une autre ; la couleur dans le cercle indique quel est le joueur qui vient de jouer. Le jeu commence par un plateau vide (tout en haut de l'image), et est rempli au fûr et à mesure par les joueurs. Une fois que les joueurs ont posé leurs pions, ceux-ci sont déplacés sur le plateau, selon les règles que nous connaissons aujourd'hui. Par soucis de lisibilité, j'ai retiré les jeux suicidaires où ceux qui conduisent à des coups inutiles, je n'ai conservé que les cas où les joueurs essaient d'améliorer leur configuration sans pour autant pousser la réflection trop loin, car le jeu devient entre alors dans une partie infinie. D'autre part, les différentes symétries par rotation ne sont pas représentées, afin de ne pas surcharger le graphique. Au final, le jeu ne présente pas trop de surprise, les deux joueurs peuvent jouer indéfiniment s'ils ne font pas d'erreur ; la moindre erreur signifie souvent la fin de la partie si l'adversaire est attentif. Je ne m'attendais toutefois pas à autant d'étapes et de configurations différentes dans le jeu ! Technique ========= Le calcul des combinaisons et des différents coups est réalisé en scala, chaque plateau est une scène povray_, et graphviz_ a servi à calculer le graphe. L'ensemble du code est disponible sur mon dépôt git_. Attention à la mémoire disponible si vous souhaitez recréer le graphique, dot est très gourmand er RAM dès qu'il s'agit de grandes surfaces à calculer… .. _povray: http://povray.org/ .. _graphviz: http://graphviz.org/ .. _git: http://git.chimrod.com/?p=marelle.git;a=summary