aboutsummaryrefslogtreecommitdiff
path: root/content/Perso
diff options
context:
space:
mode:
Diffstat (limited to 'content/Perso')
-rw-r--r--content/Perso/marelle.rst87
-rw-r--r--content/Perso/poker.rst2
2 files changed, 88 insertions, 1 deletions
diff --git a/content/Perso/marelle.rst b/content/Perso/marelle.rst
new file mode 100644
index 0000000..766f780
--- /dev/null
+++ b/content/Perso/marelle.rst
@@ -0,0 +1,87 @@
+.. -*- mode: rst -*-
+.. -*- coding: utf-8 -*-
+
+==================================
+La marelle romaine : les solutions
+==================================
+
+:date: 2013-06-01
+:tags: Jeux
+:logo: static/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
diff --git a/content/Perso/poker.rst b/content/Perso/poker.rst
index c1fac9c..db6a7d9 100644
--- a/content/Perso/poker.rst
+++ b/content/Perso/poker.rst
@@ -5,7 +5,7 @@
#############################
:date: 2013-04-19
-:tags: ocaml, Programmation
+:tags: ocaml, Programmation, Jeux
J'ai entrepris il y a quelques temps de mettre en place un moteur d'évaluation
des mains de poker. Je n'ai pas trouvé beaucoup de codes ou librairies