summaryrefslogtreecommitdiff
path: root/content/Perso/2013-06-01-marelle.rst
blob: b53ea880bfd8d5b47ccfc53c7a050fd7fc240332 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
.. -*- 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