Jeux de semailles à une seule rangée

des jeux de semaille praticables à presque tout âge
mercredi 28 mai 2014
par  Alain BUSSER

Une des difficultés avec les jeux de semailles, est que chaque joueur a sa propre région (partie du plateau). On peut donc imaginer de jouer sur une seule rangée qui soit commune aux deux joueurs. On décrit ici des jeux de semailles créés à la fin du 19e siècle ou après, programmés en CoffeeScript ou en ludii.

mancala

Des nombreux jeux de semailles, ou mancala, existent sur presque toute la planète. Des dizaines d’entre eux sont déjà répertoriés sur ludii (choisir la catégorie sow dans le menu déroulant). On distingue quelques catégories :

  • Les jeux dits solo [1] où chaque joueur sème uniquement sur son propre territoire, et rapatrie dans son territoire les graines prises à l’adversaire ;
  • les jeux dits wari (l’awalé est le plus connu), où les graines prises sont retirées du jeu, et placées dans un grenier souvent hors du plateau de jeu ;
  • d’autres mancala essentiellement asiatiques où le grenier (« kalah ») est utilisé au cours du jeu : on y sème mais en général on n’y récolte pas. Exemple, le congklak indonésien où chaque joueur a son grenier [2].
  • Finalement, des versions solitaires du jeu, essentiellement asiatiques, où le grenier s’appellerait « Rouma » [3]. Ce jeu est très répandu paraît-il en Inde.

Histoire de la Tchouka

  • Le jeu de Tchouka-Rouma a été diffusé par Édouard Lucas [4] [5]
  • En 1895, Henri-Auguste Delannoy publie cette description du jeu tel que Lucas le lui avait communiqué :
  • En 1929 c’est au tour de Sainte-Lagüe d’en parler, dans cet extrait de géométrie et situations de jeux :
  • En 1977, dans Wari et Solo, Deledicq et Popova évoquent le jeu de la tchouka et lui attribuent une origine russe (voire paléo-sibérienne) mais reconnaissent qu’il n’est plus pratiqué depuis au moins des décennies.
  • Dans le même livre, Véronique Gautheron, pour une étude combinatoire sur ce genre de jeu, a inventé une simplification (sans retour à la case départ, sans répétition du coup) qu’elle a baptisé Tchoukaillon.
  • Tchoukaillon aussi a eu droit à des études mathématiques.
  • Mais un résultat particulièrement intéressant est celui-ci : Le nombre de graines du tchouka-rouma (appelé tchoukaillon dans l’article) à n trous est asymptotiquement égal à n²/π...
  • Une variante a été proposée par Élisabeth Busser et Gilles Cohen dans « les jeux mathématiques du Monde », avec des grains de riz, et où on sème en s’éloignant de la Rouma.
  • Le jeu Tchouka-Rouma s’appelle Chuka sur ludii

Voici quelques jeux de semailles à un joueur (cliquer sur les images pour ouvrir le jeu dans le navigateur internet) :

1 : Tchoukaillon

  • à 4 trous :
le jeu de Tchoukaillon à 4 trous
on choisit un trou en cliquant dessus.
Alain Busser 2014
  • à 5 trous :
le jeu de Tchoukaillon à 5 trous
en cas de situation blocante, il ne reste plus qu’à relancer la page !
Alain Busser 2014
  • à 6 trous :
le jeu de Tchoukaillon à 6 trous
plus difficile avec 6 trous !
Alain Busser 2014

Remarque : Le nombre de graines est donné dans le tableau suivant, et comparé à l’estimation théorique : Il y a plus de graines dans Tchoukaillon que dans Tchouka-Rouma :

nombre de trous estimation théorique valeur effective
4 5 8
5 8 11
6 11 17

Tchoukaillon en ludii

Voici le script en langage ludii, pour Tchoukaillon :

(define "Rumba" 0)

(define "AllSitesNotRumba" (difference (sites Board) "Rumba"))

(define "LastHole" (last To afterConsequence:True))

(define "AllCountersInRumba" (= 17 (count at:"Rumba")))

//------------------------------------------------------------------------------

(game "Tchoukaillon"
    (players 1)
    (equipment {
        (board 
            (rectangle 1 7) 
            (track "Track" {6..0} loop:False)
            use:Vertex
        )
        (piece "Seed" Shared)
    })
    (rules
        (start (place Stack "Seed" (sites { 1..6 }) counts:{1 1 3 2 4 6}))
        (play 
            (move Select
                (from
                        ("AllSitesNotRumba")
                    if:(!= 0 (count at:(from)))
                )
                (then (sow))
            )
        )
        (end {
            (if ("AllCountersInRumba") (result Mover Win))
            (if 
                (and (= 1 (count at:("LastHole"))) (!= ("LastHole") ("Rumba"))) 
                (result Mover Loss)
            )
        })
    )
)

//------------------------------------------------------------------------------

(metadata 
    
    (info
        {
        (description "Tchoukaillon is a puzzle invented by Veronique Gautheron. It contains the sowing mechanism seen in many mancala-style board games. ")
        (rules "Seven holes arranged in a line. One hole is called the Rumba. The player sows the counters in one direction. If the final counter lands in an empty hole that is not the Rumba, they lose. The goal of the player is to accumulate all of the counters into the Rumba. ")
        (source "Delediqc and Popova 1977: 99-100.")
        (version "1.0.0")
        (classification "puzzle/planning")
        (credit "Alain Busser")
        }
    )
    
    (graphics {
        (board Style Mancala)
    })
    
)

Kaillon

Le jeu Tchoukaillon a été simplifié pour être plus jouable en Grande Section, le résultat s’appelle Kaillon. En fait on a juste enlevé la contrainte de ne terminer le semis que sur une case non vide, ce qui facilite grandement la recherche d’une solution. Le but du jeu devient alors de réussir à semer toutes les graines dans le trou tout à droite (la rumba ou nyumba). Et dans un second temps, de chercher une solution optimale (le moins de mouvements possibles). Mais on peut faire fausse route et rater la solution :

Bien que ce soit un jeu à un seul joueur, une difficulté persiste en Grande Section : les élèves non latéralisés ont tendance à semer depuis un bord plutôt que depuis la case voisine de droite. C’est de là que vient le jeu Fang (un jeu à deux joueurs).

2 : Le jeu de Tchouka-Rouma

le jeu de Tchouka-Rouma
le jeu original, à 4 trous et 2 graines par trou
Alain Busser 2014

3 : Les jeux du Monde

  • L’énoncé du Monde (on y parlait de grains de riz au lieu de graines) :
le premier jeu du Monde
début de l’énoncé
Alain Busser 2014
  • Le corrigé du Monde :
le second jeu du Monde
en fait la question était de trouver ce jeu, maintenant on n’en demande que la solution
Alain Busser 2014

Sowing

principe

Le jeu Sowing a été inventé par John Conway pour illustrer sa construction des surréels. Il a les caractéristiques suivantes :

  • on ne joue (comme à Tchoukaillon) que sur une rangée, commune aux deux joueurs.
  • Chaque joueur sème de sa gauche vers sa droite (donc en sens inverse l’un de l’autre).
  • Une fois que la dernière graine est semée, on passe la main à l’autre joueur (on ne resème pas).
  • Si la dernière graine du semis tombe dans une case vide, on perd le jeu.

Les parties de Sowing étant en général assez courtes, ce jeu est abordable dès la grande section...

Dans le cadre de la semaine des maths 2019 (thème « jouons ensemble avec les mathématiques ») a été proposée un atelier (le vendredi 29 mars au Moufia, à l’occasion du congrès MAThs.en.JEANS) sur le jeu Sowing (à deux joueurs), créé par John Conway. Voici une partie de ce jeu, entre deux enfants qui n’y avaient jamais joué auparavant :

Début

N. explique à son cousin que ce trou n’est pas jouable, car quel que soit le sens de semaille, la seconde graine tomberait dans un trou vide, ce que la règle du jeu interdit :

En effet chaque joueur sème de sa gauche vers sa droite, et le premier qui finit son coup en semant la dernière graine dans une case vide, est perdant du jeu.

coup 1

Du point de vue de N. (en bas sur la photo), le jeu suivant peut être représenté par ce tableau :

2 4 1 2 0 3

Comme la case à 4 graines peut être semée vers la droite de N. (la quatrième graine tombera dans le dernier trou, contenant actuellement 3 graines), N. fait le choix de jouer ce trou (elle aurait pu semer les 2 graines tout à gauche, la graine unique ou les 2 graines vers le milieu ; dans chaque cas, vers sa droite) :

Après avoir semé les 4 graines, le tableau est, du point de vue de N., le suivant :

2 0 2 3 1 4

Son adversaire (qui sème vers la gauche de N.) peut jouer l’un des trois trous centraux, à 2, 3 ou 1 graine.

coup 2

Il choisit de semer les 3 graines :

ce qui donne ce tableau :

3 1 3 0 1 4

coup 3

N. va alors semer les 3 graines du centre :

ce qui donne le tableau

3 1 0 1 2 5

le coup du krou

Son adversaire décide alors carrément de semer les 5 graines (« casser le krou », à awale) :

ce qui produit le tableau

4 2 1 2 3 0

qu’on peut abréger en

4 2 1 2 3

Fin

Si N. sème les 4 graines à sa gauche,

elle gagne :

En effet le nouveau tableau est

0 3 2 3 4

dont chaque case comprend suffisamment de graines pour semer la dernière d’entre elles trop à droite (à gauche pour N.) pour pouvoir effectuer le semis en respectant la règle du jeu. Son adversaire ne pouvant effectuer aucun mouvement, N. a gagné, selon la convention de John Conway (auteur de ce jeu).

Voici l’histoire du jeu Sowing :

Voici la présentation donnée au colloque M.e.J :

Et le fichier du plateau de jeu, pour imprimante 3D (éviter d’enlever le support afin de laisser de la solidité au matériau) :

Sowing en ludii

Le langage ludii permet de décrire assez simplement toutes sortes de jeux abstraits. Voici le jeu sowing décrit dans ce langage :

(game "Sowing" 
    (players 2) 
    (equipment { 
        (board (rectangle 1 8)
            {
            (track "Track1" "0,E" P1 directed:True)
            (track "Track2" "7,W" P2 directed:True)
            }
            use: Vertex
        )
        (regions P1 (sites Top))      // P1 home
        (regions P2 (sites Top))      // P2 home
        (piece "DiscFlat" Shared)
        (hand Each)
    }) 
    
    (rules 
        (start (place Stack "DiscFlat" (sites { 0..7 }) counts:{1 2 2 1 1 2 2 1}))        
        (play 
            (move Select 
                (from 
                    (sites Mover) 
                    if:(
                        (and
                            {
                            (is Occupied (from))
                            (is Occupied (trackSite Move Mover steps:(size Stack at:(from))))
                            }
                        )
                    )
                )
                (then (sow "Track" owner:(mover)))
            )
        )
        (end ("NoMoves" Loss))
    )
)

//------------------------------------------------------------------------------

(metadata 
    (info
        {
        (description "Sowing is a two players game. ")
        (rules "The last to move wins.")
        (source "https://jeffe.cs.illinois.edu/pubs/pdf/sowing.pdf")
        (version "1.0.0")
        (classification "board/sow")
        (credit "Alain Busser")
        (origin "This game was created by John Conway, who presented it in 1994.")
        }
    )
    
    (graphics {
        (board Checkered)
    })
    
)

En chargeant le script ci-dessus dans le logiciel ludii, on peut jouer contre une IA de son choix, voire regarder des IA s’affronter. On constate alors que la stratégie gagnante pour le premier joueur nécessite tout de même 13 coups, ce qui est plutôt long pour un jeu de Sowing.

On peut aussi tester (avec le ludii player) la variante suivante, où il y a 2 graines par case au début du jeu (ce qui limite l’avantage d’un joueur sur l’autre) :

Le variant de Busser-Lemoine

On appelle longueur du plateau, la différence entre les indices des deux cases extrêmes (la plus dextre et la plus senestre des cases non vides). Julien Lemoine a fait les remarques suivantes :

  • si on joue une case extrême, la longueur du plateau décroît strictement ;
  • si un semis se termine sur une case extrême, le nombre total de graines dans les cases extrêmes croît strictement ;
  • dans les autres cas, les cases extrêmes ne changent pas, mais à l’intérieur du plateau, l’équivalent d’une des quantités précédentes croît ou décroît strictement

De plus, le nombre total de graines dans le plateau est un invariant, que l’on va noter N. Alors on propose de construire un tuple, constitué de (par exemple pour un plateau de longueur initiale 8) :

  • la longueur du plateau P,
  • N-P0-P7
  • la longueur de (P1,P2,P3,P4,P5,P6)
  • N-P1-P6
  • la longueur de (P2,P3,P4,P5)
  • N-P2-P5
  • la longueur de (P3,P4)
  • N-P3-P4

qui est un variant pour l’ordre lexicographique sur les tuples. Existe-t-il un variant plus simple ?

Voici par exemple les valeurs que prend ce variant pour une configuration qui donne des parties particulièrement longues [6] si chaque joueur joue au mieux :

L’existence d’un variant prouve le

Théorème : toute partie du jeu Sowing a une durée finie.

Et même assez courte, aussi est-il intéressant d’expérimenter ce jeu dès la grande section. Voici un livret de problèmes de Sowing, que l’on peut traiter en exercices (cycle 2) :

Wing

En Grande Section, la règle de Sowing est complexe car il y a des problèmes de latéralisation, le fait d’avoir à patienter et ne pas jouer en même temps que l’adversaire, et l’interdiction de semer dans une case vide est une complication supplémentaire. Une simplification de Sowing consiste donc à lever cette interdiction. Chaque joueur sème de sa gauche vers sa droite, en commençant le semis par la case suivante (celle qui est juste à droite de la case choisie), à condition toutefois que le semis ne se termine pas en dehors du plateau. Le Sowing simplifié s’appelle évidemment Wing. Il sert d’entraînement en attendant d’avoir suffisamment d’aisance pour jouer à Sowing.

Voici la description du jeu :

Wing en ludii

Le jeu Wing peut durer longtemps car il est possible d’avoir des cycles (typiquement Sud transfère une graine de la case 3 vers la case 4 -vide- puis Nord transfère la graine de la case 4 vers la case 3, vidée entre-temps etc). Pour que le jeu ne dure pas trop longtemps, on propose de rajouter une règle garantissant la finitude du jeu : il est interdit de faire un coup qui ramène à une situation déjà visitée au cours du jeu. Cela donne ce script :

(game "Wing" 
    (players 2) 
    (equipment { 
        (board (rectangle 1 8)
            {
            (track "Track1" "0,E" P1 directed:True)
            (track "Track2" "7,W" P2 directed:True)
            }
            use: Vertex
        )
        (regions P1 (sites Board))      // P1 home
        (regions P2 (sites Board))      // P2 home
        (piece "Seed" Shared)
        (hand Each)
    }) 
    
    (rules 
        (start (place Random {"Seed"}  count:5))        
        (play 
            (move Select 
                (from 
                    (sites Mover) 
                    if:(
                        (and
                            {
                            (is Occupied (from))
                            (!= Off (trackSite Move Mover steps:(size Stack at:(from))))
                            }
                        )
                    )
                )
                (then (sow "Track" owner:(mover)))
            )
        )
        (end 
                (if (is Repeat) (result Mover Loss))
        )
    )
)


(metadata 
    (info
        {
        (description "Wing is a two players game. ")
        (rules "The first one to repeat a postition looses.")
        (version "1.0.1")
        (classification "board/sow")
        (credit "Alain Busser")
        (origin "This game was created by Alain Busser, on 08/20/2023, for educational purposes.")
        }
    )
    
    (graphics {
        (board Style Mancala)
    })
    
)

La nécessité de mémoriser les états du jeu déjà parcourus complique nettement le jeu, mais les IA de ludii trouvent l’existence d’une stratégie gagnante, pour le joueur Nord ou le joueur Sud, selon la position de départ.

Avec une graine par case (soit 8 graines sur un plateau de 8 cases), celui qui joue en second gagne le jeu.

D’autres jeux de semaille à deux joueurs

Chip-firing

Les jeux de semailles offrent quelque ressemblance avec les jeux de chip-firing sur graphes orientés (la différence est qu’on ne sème pas tous les jetons mais juste ce qu’il faut).

awale généralisé sur un graphe

Des variantes du jeu d’awalé peuvent être jouées sur des graphes orientés, en voici quelques-unes :

awale généralisé le source de l’article

Un jeu de semailles particulièrement remarquable est le Fifangha.


[1selon Assia Popova, ce genre de jeu existe surtout dans la moitié sud du continent africain. Voir à ce sujet Tiennot Luc, « Les jeux de semailles à Madagascar » in Moyon, M., Pestel, M.J. & Janvier M. (eds) Maths Express au carrefour des cultures, Paris, CIJM, 2014 ainsi que cet article.

[2Une version commerciale américaine a été inventée en 1940 par William Julius Champion, junior, et a été commercialisé dès 1950 par une « Kalah game company ». On en trouve maintenant sur Android sous le nom de Mankalah et même sur Nokia, où il s’appelle Bantumi ! D’après Jeroen Donkers, le mot kalah signifierait « perdre » en Indonésie.

[3« maison » en Malais, où le jeu semble populaire. Le mot ressemble quand même beaucoup à Nyumba qui est utilisé pour désigner une case similaire du jeu mraha wa tso.

[4auteur du jeu « les tours de Hanoï » ainsi que de la Pipopipette, il s’agit du célèbre arithméticien amateur.

[5En fait, on ne connaît pas trop l’origine du jeu. En Inde de l’Est, on y jouerait traditionnellement, peut-être dans une version solitaire de ce jeu.

[6Mais sa valeur, calculée à l’aide du logiciel CG-Suite, est l’étoile de Conway.


Documents joints

PDF - 1.1 Mio

Portfolio

JPEG - 180.3 kio PNG - 38.7 kio PNG - 87.9 kio PNG - 22.9 kio PNG - 435.8 kio

Commentaires