Partie (mélange, plis, batailles) → Terminal (pli par pli) : raconte
Partie (mélange, plis, batailles) → Statistiques (100 000 parties)
Statistiques (100 000 parties) → stats.json (lu au build du site) : écrites en JSON
stats.json (lu au build du site) → Fiche du site (graphiques)
Tests (AUnit) → Partie (mélange, plis, batailles) : vérifient
Ce que disent 100 000 parties
Le programme Ada a joué les 100 000 parties des graines 1 à 100 000, jusqu'à 10 000 plis chacune ; les chiffres viennent de son fichier de sortie, recalculé par la CI.
des parties ne finissent jamais (42 346 parties)
42,4 %
plis en moyenne quand la partie finit
1 689
batailles par partie, en moyenne
39,2
des parties finies gagnées par le premier joueur
52,9 %
plis de la plus courte à la plus longue
20 – 9 994
Pourquoi tant de parties sans fin ? Ici, le gagnant d'un pli ramasse toujours les cartes dans le même ordre : le jeu redevient déterministe et peut tourner en rond. Entre de vrais joueurs, l'ordre change d'un pli à l'autre et la partie finit presque toujours.
bataille --seed 44276 # la plus longue partie qui finit, en 9 994 plis
bataille --stats 100000
Technologies
Ada
Alire
AUnit
Qui fait quoi
Ada
Le jeu : des types qui excluent les cartes impossibles, des paquets à contrats, un mélange xorshift64 ; 100 000 parties simulées pour les statistiques de la fiche.
Alire
La même chaîne GNAT et AUnit en local et en CI, sur les trois systèmes.