Manuel
Introduction
blunderDB est un logiciel pour constituer des bases de données de positions de backgammon. Sa force principale est de fournir un lieu unique pour agréger les positions qu’un joueur a rencontrées (en ligne, en tournoi) et de pouvoir les réétudier en les filtrant selon divers filtres arbitrairement combinables. blunderDB peut également être utilisé pour créer des catalogues de positions de référence.
Les positions sont stockées dans une base de données représentée par un fichier .db. L’application de bureau ouvre ce fichier directement, jamais une adresse réseau : le mode serveur (Mode headless (serveur)) est un autre mode du même binaire, et l’on passe de l’un à l’autre en exportant ou en migrant la base, pas en pointant l’application vers une URL.
Interactions principales
Les principales interactions possibles avec blunderDB sont:
ajouter une nouvelle position,
modifier une position existante,
copier l’image du board dans le presse-papier (PNG) via CTRL-X, ou avec l’analyse complète via CTRL-X CTRL-X,
supprimer une position existante,
rechercher une ou plusieurs positions,
importer des matchs depuis différentes sources (XG, GNUbg, BGBlitz, Jellyfish), y compris les commentaires depuis les fichiers XG,
naviguer dans les coups d’un match importé,
organiser les positions en collections,
organiser les matchs en tournois.
L’utilisateur peut étiqueter librement les positions à l’aide de tags et les annoter via des commentaires.
Description de l’interface
L’interface de blunderDB est constituée de haut en bas par:
[en haut] la barre d’outils, qui rassemble l’ensemble des principales opérations réalisables sur la base de données,
[au milieu] la zone d’affichage principale, qui permet d’afficher ou d’éditer des positions de backgammon,
[en bas] la barre d’état, qui présente différentes informations sur la base de données ou la position courante, et intègre la ligne de commande.
Des panneaux peuvent être affichés pour:
afficher les données d’analyse associées à la position courante issues d’eXtreme Gammon (XG), GNUbg, ou BGBlitz,
afficher, ajouter ou modifier des commentaires,
rechercher et filtrer des positions selon des critères combinables,
afficher et gérer les collections de positions (panneau collections),
afficher la liste des matchs importés et naviguer dans les coups d’un match (panneau matchs),
afficher et gérer les tournois (panneau tournois),
afficher les statistiques de performance (panneau Stats),
calculer l’EPC (Effective Pip Count) d’une position de bearoff (panneau Eval),
étudier les positions par répétition espacée (panneau Anki),
afficher les métadonnées de la base de données (panneau métadonnées).
Des fenêtres modales peuvent s’afficher pour:
afficher l’aide de blunderDB,
afficher le catalogue des visites guidées (voir Visites guidées et base d’exemple),
paramétrer l’export de la base de données,
configurer blunderDB, notamment la langue de l’interface (voir Configuration).
La zone d’affichage principale met à disposition à l’utilisateur:
un board afin d’afficher ou d’éditer une position de backgammon,
le niveau et le propriétaire du cube,
le compte de course de chaque joueur,
le score de chaque joueur,
les dés à jouer. Si aucune valeur n’est affichée sur les dés, la position des dés indique quel joueur a le trait et que la position est une décision de cube. Lorsque la décision de cube est une réponse à un doublement (prise/passe), le videau proposé est affiché au centre du plateau, à la valeur offerte.
Le presse-papier est le geste courant ; enregistrer est l’autre besoin — l’illustration d’un article, d’un message de forum, d’une leçon. Le SVG y est proposé parce que le plateau en est un : c’est la forme qui survit à un agrandissement, celle qu’on met dans un document sans la flouter. Le PNG en dérive, comme la copie dans le presse-papier : un seul rendu, trois destinations, donc aucune ne peut diverger des autres. Ce menu n’apparaît pas dans le panneau Eval ni dans le panneau Recherche, où le bouton droit sert déjà à poser les pions de l’autre couleur. Voir Amener une position dans le panneau Eval pour amener une position dans le panneau Eval.
La barre d’état est structurée de gauche à droite par les informations suivantes:
la ligne de commande, accessible en appuyant sur la touche ESPACE,
un message d’information lié à une opération réalisée par l’utilisateur,
l’index de la position courante, suivi du nombre de positions dans la bibliothèque courante (ou les informations de coup/partie lors de la navigation dans un match),
le compteur de bibliothèque — « 412 positions · 38 blunders · 5 matchs » — où chaque nombre ouvre ce qu’il compte : les positions, la recherche
E>préparée dans la ligne de commande au seuil de la bibliothèque, ou la liste des matchs. Un chiffre qu’on ne peut pas suivre est une décoration. Le seuil des blunders est celui de la bibliothèque, réglé dans l’onglet Bibliothèque de la configuration et partagé avec les statistiques : deux seuils feraient dire deux choses au même mot. Le compteur promet exactement ce que le lien ouvre, y compris pour une position jouée de plusieurs façons, qui vaut son coût le plus élevé.
Note
Dans le cas de positions issues d’une recherche par l’utilisateur, le nombre de positions indiqué dans la barre d’état correspond au nombre de positions filtrées.
L’onglet Anki porte un badge quand des cartes sont à réviser, tous paquets confondus. Ce chiffre est la raison d’ouvrir l’onglet ; il n’a donc rien à faire derrière lui. Zéro n’affiche rien : un badge qui dit « 0 » est du bruit.
La commande log ouvre le journal d’activité : les deux cents dernières
lignes du fichier de journal, un bouton pour les copier — de quoi joindre un
rapport à un signalement — et un autre pour ouvrir le dossier qui les
contient. Le journal n’est ni filtré ni reformaté : un journal qu’on embellit
est un journal qu’on ne peut plus citer.
La commande grid ouvre la planche-contact : la liste parcourue —
résultats d’une recherche, bibliothèque, collection — en grille de
mini-plateaux, dessinés comme le plateau, par pages de vingt-quatre. Elle
s’ouvre sur la page de la position courante, dont la vignette est encadrée ;
un clic ou ENTREE sur une vignette ouvre sa position sur le plateau et
referme la planche, et elle se parcourt entièrement au clavier (voir
Planche-contact). Elle ne s’ouvre ni en mode édition ni dans
un match, qui se parcourt par ses coups.
Dans l”historique de recherche du panneau Recherche, chaque jeton d’une commande enregistrée s’affiche en pastille nommée — Sans contact, Erreur de coup — plutôt qu’en jeton nu. La commande exacte reste en infobulle, car c’est elle qu’on relance ; et un jeton que blunderDB ne reconnaît pas s’affiche tel quel plutôt que traduit au plus proche.
Onglets de vues
Sous la barre d’outils, une barre d’onglets permet de travailler avec plusieurs vues en parallèle. Chaque vue est un espace de travail indépendant qui conserve sa propre liste de positions, l’index de la position courante, la position affichée, l’analyse et le coup sélectionné, le panneau actif, le commentaire en cours ainsi que le contexte de navigation dans un match. Il est ainsi possible, par exemple, de garder une recherche ouverte dans une vue tout en parcourant un match dans une autre.
Créer une vue : cliquer sur le bouton + de la barre d’onglets ou appuyer sur CTRL-T. La nouvelle vue démarre comme une copie de la vue courante.
Fermer une vue : cliquer sur la croix de l’onglet ou appuyer sur CTRL-W. La dernière vue ne peut pas être fermée.
Changer de vue : cliquer sur un onglet, appuyer sur CTRL-PageUp / CTRL-PageDown (ou MAJ-J / MAJ-K) pour passer à la vue précédente / suivante, ou CTRL-1 à CTRL-9 pour atteindre directement la n-ième vue.
Renommer une vue : double-cliquer sur l’onglet, saisir le nouveau nom et valider avec ENTREE.
Les vues sont enregistrées avec l’état de session de la base de données et restaurées à sa réouverture.
Configuration
Le bouton de configuration (icône en forme de rouage) situé dans la barre d’outils, à gauche du bouton d’aide, ouvre la fenêtre de configuration de blunderDB. Elle est organisée en sept onglets :
Interface — langue, échelle d’affichage, position du panneau ;
Couleurs — les couleurs du plateau ;
Bibliothèque — ce qui appartient à la base ouverte : les seuils d’erreur et de blunder, le compactage et la réparation, décrits ci-dessous ;
Bearoff — les tables de sortie utilisées par le panneau Eval ;
gammonNet — les réglages de l’évaluateur embarqué, décrits ci-dessous ;
Dossier surveillé — l’import automatique des matchs qui arrivent dans un dossier, décrit ci-dessous ;
Identité d’émetteur — la clé qui signe vos filigranes, décrite à la section Diffuser une base : origine et mot de passe.
L’onglet Interface propose d’abord un thème : suivre le système, clair, sombre, contraste élevé ou imprimable. Le thème règle les couleurs de l’interface et propose une palette de plateau — une interface sombre autour d’un plateau clair n’est pas un thème sombre, c’est la moitié d’un, puisque le plateau occupe l’essentiel de la fenêtre.
Vous gardez le dernier mot, et le mécanisme le garantit plutôt que de le promettre : l’onglet Couleurs continue de régler le plateau directement, et une couleur choisie après le thème est la vôtre. Au démarrage, seuls les jetons de l’interface sont appliqués, jamais la palette du plateau — celle que vous avez réglée est déjà chargée, et la réécrire à chaque lancement effacerait votre travail une session à la fois. Voir ADR-0038.
Suivre le système est le réglage par défaut : il obéit à la préférence clair/sombre du bureau, y compris lorsqu’elle change en cours de session. Un outil n’impose pas son clair ou son sombre à un bureau qui a déjà tranché.
L’onglet Interface permet aussi de choisir la langue parmi l’anglais, le français, l’allemand, l’italien, l’espagnol, le finnois, le japonais, le grec et le russe. L’ensemble de l’interface (barre d’outils, panneaux, messages, aide) est traduit dans la langue sélectionnée. Le choix de la langue est enregistré et conservé d’une session à l’autre.
L’onglet Bibliothèque réunit ce qui appartient au fichier ouvert et non à la machine. Il est vide tant qu’aucune base n’est ouverte, et il le dit.
Il porte d’abord les deux seuils qui décident du vocabulaire de toute
l’application : une décision est une erreur dès que son coût atteint le
seuil d’erreur, et cette erreur est un blunder dès qu’il atteint le seuil
de blunder. Tout blunder est une erreur, donc le premier seuil ne peut pas
dépasser le second, et blunderDB refuse la paire inversée. Les valeurs sont
saisies en équité — « 0,080 » — l’unité de toutes les tables ; la ligne de
commande, elle, parle en millipoints, si bien que le seuil 0,080 s’écrit
E>80 dans une recherche.
Ces seuils suivent le fichier, pas l’ordinateur : la même base compte les
mêmes blunders partout où on l’ouvre, blunderdb info les affiche, et
blunderdb edit --error-threshold / --blunder-threshold les règle. Ils
ne voyagent pas dans un export : un seuil est une habitude de lecture, pas un
fait des positions.
Trois préréglages sont proposés d’un clic, chacun sous le nom du programme qui a tracé cette ligne : blunderDB (0,050 / 0,100), XG (0,020 / 0,080) et gnubg (0,040 / 0,080). Par défaut, une bibliothèque lit 0,050 et 0,100.
Ce qu’ils changent, à l’écran : le nombre de blunders du compteur de la barre d’état et la recherche que son lien prépare, les colonnes « Erreurs » et « Blunders » des statistiques et du tableau des joueurs, les marques des coups dans la fiche d’un match (Panneau Matchs), et la liste des positions que blunderDB propose de revoir après un import.
Le même onglet propose aussi le bouton Compacter la base, qui récupère
l’espace disque laissé par les suppressions (matchs, tournois, purges) : la
base de données ne rétrécit jamais toute seule quand on supprime des données,
il faut demander explicitement ce compactage. L’opération peut prendre du
temps sur une grosse base et nécessite, temporairement, environ deux fois sa
taille en espace disque libre (blunderDB refuse de démarrer plutôt que de
risquer un compactage interrompu) ; une confirmation est donc demandée avant
de lancer l’opération. Le résultat — l’espace gagné, en mégaoctets — s’affiche
ensuite dans la barre d’état. La même opération est disponible en ligne de
commande via blunderdb vacuum (voir Interface en ligne de commande (CLI)).
Le bouton Ouvrir le dossier des journaux, juste en dessous, ouvre le dossier contenant le journal de l’application — utile pour joindre des détails à un signalement de problème, en particulier quand blunderDB est lancé depuis un raccourci ou un double-clic, sans terminal attaché pour afficher quoi que ce soit.
La case Vérifier les mises à jour au démarrage, désactivée par défaut, interroge une fois la page des dernières versions du dépôt GitHub à chaque lancement et affiche, dans la barre d’état, un message si une version plus récente est disponible — jamais une fenêtre qui bloque l’utilisation. Cette vérification reste désactivée automatiquement sur une installation passée par un gestionnaire de paquets (Flatpak, Homebrew, un paquet de distribution…) : c’est ce canal-là qui gère alors les mises à jour, pas blunderDB lui-même.
Deux réglages gouvernent le classement des positions voisines (jeton
like, voir Panneau Recherche) : le nombre de voisines rendues, et la
distance maximale au-delà de laquelle une position cesse d’en être une. Cette
distance vaut zéro par défaut, c’est-à-dire aucun plafond : l’échelle dépend de
la phase de la partie, et une valeur choisie ici se lirait comme une mesure. Le
jeton like<12 impose la sienne pour une recherche, sans toucher au réglage.
L’onglet Couleurs permet de personnaliser les couleurs du plateau. Chaque élément dispose de son propre sélecteur de couleur : le fond, la bordure, les flèches claires et foncées, les pions du joueur 1 et du joueur 2, les dés, les points des dés et le videau. Le bouton Réinitialiser rétablit l’ensemble des couleurs par défaut. Comme la langue, les couleurs choisies sont conservées d’une session à l’autre.
L’onglet Bearoff gère les tables de sortie du panneau Eval (voir Panneau Eval). Elles ne sont ni embarquées dans l’exécutable, ni téléchargées : blunderDB les calcule sur la machine qui s’en sert, et le résultat est identique octet pour octet à ce que produit gnubg — l’empreinte SHA-256 est vérifiée avant que la table ne soit acceptée.
Les deux tables ordinaires (TS-06-06 pour le verdict de videau, OS-06 pour l’EPC) sont calculées au premier lancement, en arrière-plan et sans rien demander : environ six secondes sur un cœur, pendant lesquelles l’application s’utilise normalement. Le panneau Eval ne le signale que si l’on y pose une position qui a besoin d’une table pas encore prête.
L’onglet affiche le domaine actif et son origine, l’état de la table une face que lit l’EPC, le dossier où tout cela vit, et la liste des tables présentes avec leur taille et leur verdict. Chaque ligne se supprime individuellement, après confirmation.
Vérifiée ou non vérifiée. Une table vérifiée a exactement les octets que
gnubg produit pour son domaine : son empreinte SHA-256 figure dans blunderDB et
a été retrouvée. Les empreintes enregistrées pour les tables une face (OS-06 à
OS-10) sont celles que produit l’outil makebearoff de GNUbg 1.08. Une table non vérifiée est bien formée mais son domaine n’a
pas d’empreinte enregistrée — rien ne lui est reproché, simplement personne ne
l’a comparée à la référence. Une table corrompue se contredit elle-même et
n’est jamais lue ; elle est recalculée.
Calculer une table plus large. Le domaine se choisit dans une liste à deux familles, avec le nombre de cœurs à y consacrer (par défaut tous sauf un, pour que la machine reste utilisable) :
videau exact (deux faces), de TS-06-06 à TS-06-15 : élargit le domaine où la probabilité de gain et le verdict de videau sont lus plutôt qu’estimés ;
EPC hors du jan (une face), de OS-06 à OS-10 : élargit la distance à laquelle un pion peut se trouver sans que le bloc EPC se taise. Ce balayage ne lit que des positions plus petites que celle qu’il calcule, donc il est séquentiel par construction et le nombre de cœurs ne lui sert à rien — le sélecteur le dit en se grisant.
Avant de lancer quoi que ce soit, l’onglet annonce trois chiffres pour le domaine choisi : la taille sur le disque, la mémoire nécessaire pendant le calcul, et le temps que cela devrait prendre sur cette machine. Ce dernier commence par une estimation, puis devient une mesure : chaque calcul assez large relève sa propre vitesse et la conserve. Un domaine que la mémoire disponible ne permet pas est proposé grisé, avec la raison — « il faudrait 24 Go, il en reste 12 » est une réponse, une ligne absente n’en serait pas une.
À titre d’ordre de grandeur, sur une machine à seize fils : TS-06-09 pèse 191 Mo et demande une dizaine de secondes, TS-06-11 pèse 1,2 Go et quelques minutes, TS-06-13 dépasse ce que la plupart des machines peuvent tenir en mémoire. Du côté une face, sur un cœur : OS-07 pèse 4,9 Mo et prend 17 s, OS-08 15 Mo et 1 min 20, OS-10 117 Mo et une demi-heure.
Pause et reprise. Pendant le calcul, la progression affiche le temps restant mesuré, et deux boutons distincts : Pause et Annuler. La pause écrit l’état du calcul à côté de la table ; le relancer reprend là où il s’est arrêté au lieu de tout recommencer. Annuler ne garde rien. Fermer la fenêtre de configuration n’interrompt rien — le calcul continue en arrière-plan.
Un calcul mis en pause se retrouve au lancement suivant, nommé et chiffré (« TS-06-09 interrompue à 43 % »), avec Reprendre et Supprimer. Rien ne redémarre tout seul : c’est l’utilisateur qui a demandé l’arrêt.
L’onglet permet enfin de pointer vers un fichier .bd two-sided externe, par
exemple une base produite par gnubg lui-même : la table au domaine le plus
large l’emporte.
L’onglet Bibliothèque porte enfin Réparer les analyses : les colonnes
d’analyse que la recherche et les statistiques interrogent sont une projection
des analyses stockées, lesquelles restent intactes. Un défaut de projection se
répare donc sans rien réimporter. C’est explicite et jamais automatique —
réécrire les colonnes d’analyse de quelqu’un au seul motif qu’il ouvre sa base
n’est pas une chose qu’un outil doit faire dans son dos. Le même
blunderdb repair est disponible en ligne de commande.
L’onglet gammonNet règle l’évaluateur embarqué (voir ADR-0011). Deux profondeurs de recherche y sont réglables, nommées et conservées séparément — abaisser l’une ne modifie jamais l’autre :
Profondeur d’affichage — le confort interactif pendant l’édition du plateau ; jamais écrite en base.
Profondeur d’analyse — ce que le lot d’analyse après import écrit dans l’Analyse d’une position.
Les deux valent par défaut 2-ply, la configuration canonique. L’onglet
propose aussi l”élagage (par défaut k=12) et le nombre de coups
candidats affichés (par défaut 10), ainsi qu’une case analyser
automatiquement après import qui, une fois activée, vérifie après chaque
import s’il reste des positions sans aucune analyse (ni gammonNet, ni XG,
ni GNUbg, ni BGBlitz — la règle est « une évaluation ne comble qu’un trou »,
jamais un remplacement) et, le cas échéant, lance en tâche de fond une analyse
gammonNet à la profondeur d’analyse configurée. Un bouton Analyser
maintenant relance manuellement le même rattrapage, utile pour une
bibliothèque constituée avant l’existence de cette fonctionnalité.
Un second bouton, Ré-analyser les positions périmées, couvre le cas inverse : une position déjà analysée par gammonNet, mais dont l’analyse stockée a été écrite par une version de moteur plus ancienne que celle en cours d’exécution, ou à une profondeur différente de la profondeur d’analyse configurée ci-dessus, y est signalée comme périmée et réévaluée. Une position portant en plus une analyse XG, GNUbg ou BGBlitz n’est jamais touchée par ce bouton, quel que soit son contenu gammonNet — la protection d”ADR-0013 reste inconditionnelle. Le nombre affiché à côté de chaque bouton (positions sans analyse, positions périmées) est purement informatif ; le lot recalcule sa propre liste au moment de démarrer.
Les deux lots sont bornés, visibles et annulables, jamais un démon
silencieux : leur progression (positions analysées / total) et un
bouton d’annulation apparaissent dans la barre de statut pendant toute leur
durée, et disparaissent une fois terminés au profit d’un message résumant le
résultat — combien de positions ont été analysées, combien ont été
refusées (une position que gammonNet décline d’évaluer, comme un score de
match hors de portée de sa table de match, ce qui n’est jamais une panne) et
combien ont échoué (retentées, inchangées, au prochain lancement).
Fermer l’application pendant l’un ou l’autre ne perd rien : chaque position
analysée est écrite au fil de l’eau, et un prochain lancement reprend
exactement là où l’analyse s’était arrêtée, sans aucun journal à tenir.
Un match importé sans analyse obtient ainsi un PR. C’est le cas d’un match
joué en ligne, ou d’un fichier Jellyfish .mat, que personne n’a fait
passer par XG : blunderDB en connaissait les positions et les coups joués,
mais aucune analyse ne disait ce qu’ils valaient. Une fois le lot passé, le
coup effectivement joué est comparé au classement de gammonNet et l’écart
alimente le PR, le taux d’erreur, les pires décisions et tous les autres
indicateurs, exactement comme un match analysé par XG. La comparaison ne
s’invente rien : le coup joué vient de la table des coups du match, écrite à
l’import, que le fichier ait porté une analyse ou non.
Une base analysée avec une version antérieure à celle-ci n’a pas besoin d’être
réévaluée : blunderdb repair recalcule les colonnes à partir des analyses
et des coups déjà en base et rend leur PR à ces matchs (voir
repair).
Une réserve honnête : une position est identifiée par sa structure, donc une position rencontrée deux fois — bien jouée une fois, mal l’autre — ne porte qu’un seul écart, celui de sa première occurrence enregistrée. Ce n’est pas propre à ce calcul : une bibliothèque XG a exactement la même forme.
Dossier surveillé
L’onglet Dossier surveillé demande à blunderDB de regarder un dossier pendant qu’il tourne et d’importer chaque fichier de match qui y apparaît. Jouer une session dans eXtreme Gammon, revenir à blunderDB, et trouver les matchs déjà là.
Rien n’est deviné. Tant qu’aucun dossier n’est désigné, il n’y a pas de surveillance : blunderDB ne se met pas à lire un répertoire parce qu’il a supposé où vivent vos matchs. Le bouton Proposer cherche les emplacements habituels sur cette machine et n’en propose un que s’il existe réellement ; sinon il le dit, et c’est à vous de désigner le dossier.
Trois points méritent d’être connus avant d’activer la case :
Seuls les fichiers qui apparaissent sont importés. Ce que le dossier contient déjà au moment où la surveillance démarre est enregistré comme connu et laissé tranquille : pointer une surveillance sur quatre ans de matchs ne doit pas les importer tous. Pour importer ce qui est là, utilisez l’import de dossier, qui existe pour cela — et les deux se composent très bien, l’import d’abord, la surveillance ensuite.
Un fichier n’est importé qu’une fois sa taille stable. Un match qu’un autre programme est en train d’écrire grossit d’un coup d’œil à l’autre ; l’importer à moitié écrit donnerait une erreur d’analyse syntaxique sur laquelle personne ne peut agir. blunderDB attend donc de voir deux fois le même fichier inchangé.
L’import est silencieux. Vous étiez en train d’étudier une position quand vos matchs sont arrivés : vous reprendre l’écran serait le pire moment. Le mode, la recherche active, l’onglet et la position affichée ne bougent pas ; la liste des positions n’est pas rechargée et montre les nouveaux matchs au prochain rechargement. L’import se fait sans fenêtre, et la barre d’état affiche un bandeau donnant le compte des matchs importés, ignorés (doublons) et en échec, avec un bouton qui ouvre le compte rendu complet si vous le souhaitez. Tout le reste est identique à un import manuel : mêmes doublons détectés, même lot d’import, même analyse automatique si elle est activée.
L’intervalle par défaut est de dix secondes ; le plancher est de deux. Le dossier n’est pas parcouru récursivement : un dossier surveillé est l’endroit où un outil dépose ses matchs, pas une arborescence à explorer. Un partage réseau démonté n’arrête pas la surveillance et ne fait pas non plus passer son contenu pour nouveau à son retour.
La même surveillance existe en ligne de commande, avec
blunderdb import --type batch --dir <dossier> --watch (voir Interface en ligne de commande (CLI)) :
c’est la forme qu’un serveur, une tâche planifiée ou un script peuvent
utiliser.
La fenêtre de configuration regroupe également des réglages d’affichage de l’interface. Un curseur d”échelle de l’interface permet d’agrandir ou de réduire l’ensemble des éléments, ce qui est utile sur les écrans à haute densité ou pour améliorer la lisibilité. Un menu position des panneaux détermine l’emplacement des panneaux (recherche, matchs, analyse) par rapport au plateau : en bas, sur le côté ou automatique (le côté est alors choisi sur les écrans larges afin de mieux exploiter l’espace disponible). Comme les autres réglages, ces choix sont conservés d’une session à l’autre.
Visites guidées et base d’exemple
Pour faciliter la prise en main, blunderDB propose des visites guidées de
l’interface. Le catalogue des visites s’ouvre depuis la barre d’outils ou avec
la commande tour (alias tutorial). Sept visites sont disponibles : un
tour général de l’interface, et des visites dédiées à la recherche de positions,
à la revue des matchs, à la revue des tournois, au panneau Eval, à la révision
Anki et aux statistiques. Chaque visite met en évidence les éléments concernés
de l’interface, étape par étape, ouvre au passage le panneau dont elle parle, et
peut être rejouée à tout moment. Au premier démarrage, le tour général est
proposé automatiquement.
La commande demo charge une base d’exemple permettant de découvrir les
fonctionnalités de l’outil sans importer ses propres parties : trois matchs
(dont deux regroupés dans un tournoi) analysés par eXtreme Gammon, BGBlitz et
gammonNet, trois collections thématiques, des commentaires étiquetés
(#blunder, #cube) et un paquet Anki avec son journal de révisions. Les
joueurs, le tournoi et le lieu sont fictifs. Les visites guidées s’appuient sur
cette base lorsqu’aucune base n’est ouverte.
Édition de positions
L’appui sur la touche TAB ouvre le panneau de recherche et permet d’éditer une position sur le plateau pour l’ajouter à la base de données ou pour définir une structure de position à rechercher. La distribution des pions, du videau, du score, et du trait peuvent être modifiés à l’aide de la souris (voir Editer une position).
Astuce
Se référer à Raccourcis clavier pour les raccourcis disponibles.
La ligne de commande
La ligne de commande, intégrée dans la barre d’état, permet de réaliser l’ensemble des fonctionalités de blunderDB disponibles à l’interface graphique: opérations générales sur la base de données, navigation de position, affichage de l’analyse et/ou des commentaires, recherche de positions selon des filtres… Après une première prise en main de l’interface, il est recommandé de progressivement utiliser la ligne de commande qui permet une utilisation puissante et fluide de blunderDB, notamment pour les fonctionnalités de recherche de positions.
Pour ouvrir la ligne de commande, appuyer sur la touche ESPACE. Pour envoyer une requête et fermer la ligne de commande, appuyer sur la touche ENTREE.
blunderDB exécute les requêtes envoyées par l’utilisateur sous réserve qu’elles soient valides et modifie immédiatement l’état de la base de données le cas échéant. Il n’y a pas d’actions de sauvegarde explicite de la part de l’utilisateur.
Astuce
Se référer à la liste des commandes pour la liste de commandes disponible en ligne de commande.
La palette de commandes
La palette de commandes (CTRL-MAJ-P) retrouve par un nom approché ce que l’on ne sait plus où chercher : une commande de la ligne de commande, un onglet, un filtre de la bibliothèque ou un match. Les lettres tapées doivent apparaître dans l’ordre, pas forcément côte à côte, et sans égard aux majuscules ni aux accents : « mtrc » trouve la matrice du videau, « lyon » les matchs d’un tournoi de Lyon.
Les flèches choisissent, ENTREE lance, ECHAP referme. Une commande se lance
comme si elle avait été tapée ; s et ss ouvrent la ligne de commande
pour y écrire les filtres ; un filtre se lance comme d’un double-clic dans la
bibliothèque ; un match s’ouvre comme d’un double-clic dans le panneau Matchs.
Quand une Direction est ouverte, la palette y ajoute le tournoi : joueurs, tables, matchs en cours et épreuves (voir la recherche rapide).
Panneau Analyse
Le panneau Analyse (CTRL-L) affiche les données d’analyse de la position
courante importées depuis eXtreme Gammon (XG), GNUbg ou BGBlitz. Il présente
les meilleures alternatives (coups de pions ou décisions de videau) avec leurs
valeurs d’équité et les erreurs correspondantes. La touche d bascule entre
l’analyse des coups de pions et l’analyse du cube. Lors de la navigation dans
un match, le coup effectivement joué est mis en évidence dans la liste des
alternatives. Appuyer sur CTRL-L ou exécuter la commande list pour
afficher ou masquer le panneau.
Sous les tableaux, une phrase dit parfois ce que la décision jouée a coûté et pourquoi : « Vous perdez 120 mMWC : le coup joué laisse trois blots là où 13/7 8/7 n’en laisse qu’un. » Elle est produite par six règles mesurables — l’exposition, un point du jan fait ou manqué, les chances de gammon abandonnées, une sécurité qui coûte plus qu’elle ne rapporte, et les deux sens d’une erreur de videau (doubler trop tard ou trop tôt, prendre trop large ou passer trop serré).
La règle qui compte est celle du silence : la phrase n’apparaît que si une règle s’applique de façon confiante, et sur une erreur qui dépasse le seuil à partir duquel les moteurs s’accordent à dire qu’elle en est une. Le reste du temps, il n’y a pas de phrase — ni cadre vide, ni « nous ne savons pas ». Une explication fausse coûte plus cher que pas d’explication : elle apprend quelque chose d’inexact.
Lorsqu’une position a été jugée par plusieurs moteurs, une bande en tête du panneau les met côte à côte : une ligne par moteur, avec sa profondeur et sa réponse — le verdict de videau, ou son propre meilleur coup. Elle dit d’abord s’ils sont d’accord, et c’est le désaccord qui la justifie : « XG dit double, prend ; gammonNet dit pas de double » se lit d’un coup d’œil, là où il fallait comparer deux tableaux en diagonale.
Le meilleur coup d’un moteur est le meilleur de ce moteur : la liste des coups candidats est triée par équité, tous moteurs confondus, et son premier élément n’est donc le meilleur coup d’aucun d’eux en particulier.
La bande n’apparaît que s’il y a effectivement plusieurs moteurs, et elle n’existe que dans ce panneau : le panneau Eval présente une décision, celle du moteur embarqué (ADR-0017), et une comparaison n’y aurait pas sa place.
Les coups sont écrits comme on les lit sur le plateau, ici comme dans le
panneau Eval : le pion le moins avancé bouge d’abord, et un pion qui
enchaîne plusieurs dés ne s’écrit qu’une fois — un 64 joué avec le même
pion se lit 24/14, et 24/14* s’il frappe en arrivant. Le détail de
l’enchaînement ne réapparaît que lorsqu’il dit quelque chose de plus : une
frappe en cours de route conserve son point de passage, 24/18* 18/14,
sans quoi la frappe en 18 disparaîtrait de la notation.
L’équité d’une analyse importée suit la même règle que le panneau Eval : la colonne annonce son référentiel, « Équité (money) » ou « Équité (match) » selon le score de la position analysée, jamais un simple « Équité » muet sur l’échelle. Les règles Jacoby et Beaver actives sur une position en money game s’affichent, elles aussi, en badges sous le tableau de décision de videau.
Rollouts
Sous l’analyse, le panneau Analyse propose de rouler la position :
jouer des centaines de parties à partir de chaque coup candidat, ou de chaque
action de videau, pour départager deux choix que l’évaluation directe sépare à
peine. Trois réglages : Rapide (216 parties, tronquées à 7 demi-coups),
Standard (1296 parties, tronquées à 11 demi-coups) et Libre, où tous les
paramètres s’éditent — troncature, parties minimum et maximum (multiples de 36),
limite de JSD, profondeur (ply), nombre de candidats, graine et nombre de
processus. Le bouton Lancer le rollout, la touche r du panneau ou la
commande rollout (alias ro) le démarrent ; une barre de progression
suit les parties jouées et Annuler (ou r de nouveau) l’arrête sans rien
écrire.
Le résultat est stocké à côté de l’analyse, jamais à sa place : une analyse importée n’est pas modifiée. Chaque rollout forme un bloc avec, par candidat, l’équité, l’intervalle de confiance à 95 %, la JSD (l’écart au meilleur coup en écarts-types de la différence : à partir de la limite, le coup est tranché et cesse d’être joué) et le nombre de parties. Le rollout s’arrête dès que les coups sont départagés. La Configuration — le moteur et la signature complète des paramètres — se déplie sous le tableau : deux rollouts de même signature sont les mêmes nombres. Un rollout joue le videau dans ses parties : le classement est fiable, l’équité absolue un peu moins, ce que le bloc rappelle. Une position qui n’est pas dans la base se roule, mais ne se stocke pas.
Le bouton Sur la liste affichée… (ou ro search) roule, l’une après
l’autre, les positions de la liste affichée — résultats de recherche, match ou
collection — qui n’ont pas encore ce rollout ; une confirmation donne le total
avant de commencer. Chaque position est écrite
dès qu’elle est finie : annuler garde ce qui est fait, et relancer reprend où
l’on s’est arrêté. L’avancement survit à la fermeture du panneau.
Panneau Commentaires
Le panneau Commentaires (CTRL-P) affiche, ajoute et modifie les
commentaires associés à la position courante. Une position peut en porter
plusieurs : ils sont tous affichés, du plus récent au plus ancien. Les
commentaires importés depuis les fichiers XG sont automatiquement associés aux
positions correspondantes. Appuyer sur CTRL-P ou exécuter la commande
comment pour afficher ou masquer le panneau.
Chaque commentaire venu d’un fichier porte une étiquette de provenance
(XG, GNU BG, BGF, ou importé lorsque la provenance n’a pas été
enregistrée). Les commentaires que vous avez écrits n’en portent pas : c’est le
cas courant, et le signaler à chaque ligne serait du bruit. Modifier un
commentaire importé vous l’attribue : après la modification, la phrase est la
vôtre.
Cette distinction a une conséquence visible ailleurs : supprimer un match n’efface plus une position sur laquelle vous aviez écrit. Une note reprise du fichier source, elle, disparaît avec le match qui l’a apportée.
La corbeille
Supprimer une position, une collection ou un commentaire passe par une
corbeille : la suppression a bien lieu, mais une copie de ce qui
disparaît est gardée trente jours. La commande trash ouvre la fenêtre qui
les liste, avec pour chacune Restaurer et Supprimer.
Une position restaurée revient avec son analyse et ses commentaires — la rendre nue serait une restauration de nom seulement. Elle ne revient pas sous son ancien numéro : la ligne d’origine n’existe plus, et blunderDB la réenregistre par son empreinte, ce qui garantit qu’elle ne crée jamais de doublon mais lui donne un nouvel identifiant. Une collection revient avec sa liste ; les positions qu’elle contenait, elles, n’avaient jamais été supprimées — une collection est une vue sur elles.
Ce qui a plus de trente jours est supprimé par la commande vacuum, jamais à
l’ouverture d’une base : ne pas faire de vacuum, c’est tout garder.
Note
La corbeille ne voyage pas. Un export ne l’emporte pas, et supprimer un match n’y met rien : la purge des positions orphelines qui suit une suppression de match est un nettoyage automatique, pas un geste de l’utilisateur — voir la règle de rétention dans Panneau Matchs.
Panneau Recherche
Le panneau Recherche (CTRL-F ou TAB) permet de filtrer les positions selon des critères combinables librement : structure de pions, type de décision de videau, magnitude d’erreur, dates, tags, etc. La touche TAB ouvre simultanément le panneau de recherche et l’éditeur de position, permettant de définir une structure de pions à rechercher sur le plateau.
Le panneau Recherche : filtres numériques, structure de pions au plateau, onglets Au moins / Sauf.
Pour chercher parmi les positions affichées, utiliser la commande ss
suivie de filtres (ex: ss nc, ss E>40). ss cherche dans la liste à
l’écran : les résultats de la recherche précédente, la collection ouverte ou
les positions du match en cours de revue, que la commande soit tapée
directement ou depuis le panneau de recherche (TAB). La case à cocher
Rechercher dans les résultats actuels du panneau suit la même règle. En
collection et en match, s est refusé : il chercherait dans toute la
bibliothèque et remplacerait la liste affichée.
Les résultats d’une recherche ss lancée depuis une collection ou un match
se quittent avec Esc, en un seul appui dès que ni un champ ni le panneau qui a
le focus n’a quelque chose à fermer (un coup sélectionné dans l’analyse, par
exemple) : blunderDB revient à la collection entière, ou au match sur le coup
étudié, et à la position quittée.
Ce retour ne suit que ss : s, lancé depuis le panneau de recherche
ouvert sur une collection ou un match, cherche dans toute la bibliothèque, et
Esc ne ramène plus à la liste quittée.
Le panneau propose un contrôle explicite du type de décision recherché : Indifférent (aucun filtre), Pions (décisions de coup) ou Videau (décisions de cube). Lorsque Videau est sélectionné, une seconde liste précise le sous-type : Tous, Double / Pas de double (le joueur au trait doit décider de doubler) ou Prise / Passe (réponse à un doublement adverse). Le contrôle est synchronisé avec le plateau : modifier les dés ou le videau sur le plateau met à jour le type de décision, et inversement. En mode Prise / Passe, le videau est affiché au centre du plateau à la valeur offerte ; cette valeur reste éditable.
La phase de partie — ouverture, milieu de partie, course, sortie des pions —
est une étiquette calculée par blunderDB à partir du plateau seul, jamais
modifiable, et disponible en recherche par le jeton ph: de la ligne de
commande (ph:race, répétable : ph:race ph:bearoff). Trois de ses quatre
frontières sont celles que GNU Backgammon emploie pour aiguiller ses réseaux ; la
quatrième, où s’arrête l’ouverture, est une convention de blunderDB : une
position en est encore à l’ouverture tant qu’aucun des deux camps n’a déplacé
plus de quatre pions de leurs points de départ, qu’aucun pion n’est sorti et
qu’aucun n’est sur la barre.
Note
L’étiquette est recalculée par la commande blunderdb repair. Sur
une base ouverte pour la première fois avec cette version, le calcul est fait
une fois, à l’ouverture. Une base dont les phases n’ont jamais été calculées
ne renvoie rien pour ph: — rien, plutôt qu’une réponse fausse.
Le jeton like classe au lieu de restreindre : sa présence ordonne le
résultat par distance croissante à une position cible — like la position
courante, like42 celle d’indice 42 — et les autres jetons restreignent
l’ensemble ainsi classé, si bien que s like42 E>80 se lit « les voisines
de la 42 où j’ai fauté ». La distance est une distance de transport en
pions-pas, la quantité de mouvement de pions qui sépare deux positions, vue du
joueur au trait.
Une voisine est le même problème, pas le même dessin : le classement se
prend dans la classe de la cible — même type de décision, même régime (argent
ou match) pour une décision de videau, et un match différent du sien, car les
positions qui l’entourent dans sa propre partie sont ses structures les plus
proches sans jamais être ses voisines. Les dés, le score et le videau restent
hors classe ; les jetons ordinaires les filtrent quand on le veut. like42* élargit la classe à tous
les types de décision et aux deux régimes, jamais au match de la cible ;
like<12 écarte ce qui est à plus de douze pions-pas. Un classement qui ne
trouve rien rend une liste vide et le dit, plutôt que dix positions sans
rapport.
En mode édition, s like prend pour cible le plateau dessiné : on
dessine à peu près la position dont on se souvient, on lance, et la
bibliothèque répond — là où la recherche par structure exige le dessin juste.
Le plateau est alors lu comme une position et non comme un motif : un point
laissé vide compte comme des pions sortis, ce qui est exact pour une position
réelle et fausse le calcul pour un dessin laissé à moitié.
Chaque voisine porte sa distance sous les tableaux d’analyse, avec la position dont elle est proche. C’est ce qui permet de juger si l’on regarde une voisine ou une coïncidence, et c’est la raison d’être du plafond. Le classement se lance aussi sans passer par la ligne de commande : CTRL-MAJ-L, ou l’entrée Positions voisines du menu contextuel du plateau.
Le jeton n compte les rencontres : n>3 retient les positions
auxquelles plus de trois coups aboutissent, tous matchs confondus. C’est une
autre question que « qu’ai-je raté » — une position rencontrée vingt fois et
bien jouée dix-neuf reste celle qu’il faut savoir par cœur. Le compte porte
sur les coups, pas sur les matchs : la même position deux fois dans un match
compte pour deux, parce que c’étaient deux décisions.
Le plan de jeu est une seconde étiquette dérivée, à côté de la phase, et
elle répond à la question qu’un paquet de filtres sauvegardés ne sait pas
poser : « montre-moi mes erreurs en holding game ». Jeton gt:, répétable
(gt:holding gt:mutualholding), du point de vue du joueur au trait — le
plan dans lequel se prenait la décision.
Les dix plans reconnus, dans l’ordre où les règles les épuisent, du plus spécifique au plus général :
race— les pions les plus arriérés des deux camps se sont croisés : aucun contact n’est plus possible. Frontière de GNU Backgammon.bearin— le joueur au trait rentre ses pions alors que l’adversaire tient encore une ancre dans son jan.crunch— le joueur au trait a au plus six pions hors de ses points 1 et 2. Règle de GNU Backgammon, seuil de son auteur.backgame— deux ancres ou plus dans le jan adverse.acepoint— une seule ancre, sur le point 1 adverse, avec au moins vingt pions de retard.blitz— trois points du jan faits ou plus, et l’adversaire à la barre ou avec un blot à frapper dans ce jan.primevprime— les deux camps tiennent une amorce d’au moins quatre points, et chacun a un pion enfermé derrière celle de l’autre.mutualholding— les deux camps tiennent une ancre haute.holding— le joueur au trait tient une ancre haute, l’adversaire non.contact— contact, et aucun des plans ci-dessus. L’ouverture atterrit ici.
Trois de ces règles sont celles de GNU Backgammon et sont sourcées ; les
autres sont des conventions de blunderDB. La littérature du backgammon
décrit les plans de jeu sans en chiffrer les frontières, et aucune mesure
d’accord entre classificateurs n’est publiée pour ce problème. Les seuils non
sourcés — trois points du jan pour un blitz, quatre points pour une amorce,
vingt pions de retard pour un ace-point game — sont donc énoncés ici plutôt
que cachés dans le code, et ils sont versionnés : les changer et relancer
blunderdb repair ré-étiquette toute la base.
Note
Une seule étiquette est conservée par position, celle du joueur au
trait. Une étiquette dérivée n’est jamais modifiable, jamais exportée comme
une vérité, et une base dont les plans n’ont jamais été calculés ne renvoie
rien pour gt: — comme pour ph:.
Le filtre Marquée retient les positions que vous avez marquées (flag) dans
le logiciel d’origine du match. Seul eXtreme Gammon produit cette information,
enregistrée coup par coup dans le fichier .xg ; blunderDB la lit à l’import
et la conserve. Une décision de videau marquée donne deux positions marquées, le
double et la prise/passe, blunderDB scindant en deux ce que le fichier source
enregistre comme une seule décision.
Note
Le marquage n’est pas rétroactif : les matchs déjà présents dans la
base ne portent pas cette information, puisqu’elle n’existe que dans les
fichiers source. Il suffit de réimporter le fichier .xg concerné —
l’import détecte le doublon et n’ajoute rien d’autre que les marques, sans
toucher aux commentaires ni aux analyses existants. Le marquage ne peut ni
être posé ni être retiré depuis blunderDB : pour une liste de travail
temporaire, utilisez plutôt une collection.
Le filtre Commentaire interroge les commentaires attachés aux positions
selon trois modes exclusifs. contient le texte recherche un ou plusieurs mots
dans le texte des commentaires (champ de saisie, mots séparés par ;, au
moins un doit correspondre) ; a un commentaire retient toute position portant
un commentaire, quel qu’en soit le contenu ; sans commentaire retient au
contraire les positions non annotées — utile, combiné à un filtre d’erreur ou de
date, pour dresser la liste de ce qu’il reste à commenter.
Note
Les commentaires importés depuis un fichier de match (XG, GNUbg)
comptent comme des commentaires. Pour ne retenir que les vôtres, ajoutez le
jeton co:user sur la ligne de commande (co:xg, co:gnubg,
co:bgf et co:unknown désignent les autres provenances). Par ailleurs,
les commentaires attachés à un match ou à un tournoi ne sont pas
concernés : ils annotent le match ou le tournoi, non ses positions.
Le filtre Matchs & Tournois s’appuie sur un sélecteur commun (fenêtre modale) plutôt que sur la saisie d’identifiants numériques : deux listes à cocher, une pour les matchs et une pour les tournois, chacune filtrable par texte (joueur, date, événement pour les matchs ; nom, date, lieu pour les tournois), avec des boutons Tout / Aucun qui n’agissent que sur le sous-ensemble actuellement filtré. Cocher un tournoi coche automatiquement (et grise) ses matchs membres dans la liste des matchs, rendant visible le fait qu’un tournoi équivaut à l’ensemble de ses matchs.
Le panneau de recherche comporte trois onglets sur son bord gauche :
Recherche (les filtres), Historique et Enregistrés. L’onglet
Historique liste les recherches passées avec leur date et leur commande :
un clic sélectionne une recherche et affiche la position associée sur le
plateau, un double-clic la ré-exécute. Chaque entrée peut être enregistrée
dans la bibliothèque de filtres (icône signet, en donnant un nom au filtre) ou
supprimée. L’onglet Enregistrés contient la bibliothèque de filtres :
double-cliquer sur un filtre enregistré pour relancer la recherche
correspondante (voir Annexe: Utilisation avancée des filtres). La commande history (alias
hi) ouvre le panneau de recherche.
L’étoile d’un filtre de la bibliothèque l”épingle. Les filtres épinglés
s’affichent en pastilles en haut du panneau, quel que soit l’onglet ouvert,
numérotées dans l’ordre de la bibliothèque : un clic sur une pastille lance le
filtre, et ALT-1 … ALT-9 lancent le filtre épinglé de ce rang depuis
n’importe quel écran en mode NORMAL ou EDIT, sans ouvrir le panneau. Le filtre
pose alors la même question qu’au double-clic, structure de pions comprise.
L’épingle appartient à la base : elle suit le filtre renommé, disparaît avec le
filtre supprimé et ne voyage pas avec l’export de la bibliothèque.
Une recherche relancée garde son classement : s like42 classe contre la
position 42, et s like contre le plateau enregistré avec la recherche —
celui qu’on feuilletait ou qu’on avait dessiné. Une entrée qui n’a pas gardé
de plateau n’est pas relancée contre celui de l’écran, et la barre d’état le
dit.
Astuce
Se référer à la liste des commandes pour la liste des filtres disponibles.
Panneau Collections
Le panneau Collections : nom, nombre de positions, description, dernière modification.
Le panneau Collections (CTRL-B) permet de gérer des collections de
positions. Les collections peuvent être créées, renommées et supprimées. Des
positions peuvent y être ajoutées ou retirées (touche Suppr, confirmation
demandée). Double-cliquer sur une collection pour parcourir ses positions
avec les touches GAUCHE et DROITE. La commande ss cherche parmi les
positions de la collection ouverte ; Esc ramène ensuite à la collection
(voir Panneau Recherche). L’ordre des collections et des
positions au sein des collections peut être modifié par glisser-déposer.
Appuyer sur CTRL-B ou exécuter la commande collection pour afficher ou
masquer le panneau.
Import : ce qui est écrit, ce qui ne l’est jamais
Importer un match, une position ou une autre base ajoute ce qui manque ; cela ne remplace pas ce qui est déjà là.
Une position n’est jamais dupliquée. C’est son identité — pions, videau, dés, score — qui la reconnaît, jamais le fichier d’où elle vient : la même position rencontrée dans deux matchs reste une seule ligne.
Une analyse par moteur. eXtreme Gammon, GNUbg, BGBlitz et l’évaluateur embarqué cohabitent sur une même position, et le panneau Analyse indique l’origine de chacune. Importer l’une n’efface pas l’autre.
Une analyse importée n’est jamais recalculée. blunderDB la range telle quelle, avec son étiquette de niveau (« 3-ply », « XG Roller++ », « Book »), ses équités, ses erreurs, ses probabilités et la chance du lancer. La règle est « une évaluation ne comble qu’un trou » : l’analyse automatique après import ne visite que les positions sans aucune analyse, et Ré-analyser les positions périmées laisse intacte toute position portant une analyse importée (voir Configuration).
Réimporter le même fichier ne réécrit rien. Le match est reconnu comme déjà présent ; seules les marques posées dans le logiciel d’origine sont ajoutées, sans toucher aux commentaires ni aux analyses.
Ce que blunderDB n’écrit jamais : une chance recalculée — elle est lue dans le fichier source, ou reste inconnue — et un rollout, dont il n’ouvre pas les données dans un fichier
.xget qu’il ne sait pas produire.
Une collection peut être vivante : sa composition n’est plus une liste faite à la main mais le résultat d’une recherche, réévalué chaque fois qu’on l’ouvre. Le bouton ◇ en tête de la collection la rend vivante avec la dernière recherche lancée ; ◈ signale qu’elle l’est déjà, et le même bouton la rend à sa liste. Rien n’est détruit en la rendant vivante : les positions qu’elle contenait sont toujours là quand on revient en arrière.
Une collection vivante dont la requête porte un jeton que cette version ne connaît plus refuse de s’ouvrir en le disant, plutôt que de renvoyer toute la base. C’est la seule panne qu’un filtre enregistré ne doit pas avoir : s’élargir en silence.
Panneau Matchs
Le panneau Matchs (CTRL-Tab) liste les matchs importés. Double-cliquer
sur un match (ou appuyer sur ENTREE) pour naviguer dans ses coups. La
commande m reprend la navigation dans le dernier match visité.
L’utilisateur peut:
parcourir les coups d’un match en utilisant les touches GAUCHE et DROITE,
passer d’une partie à l’autre à l’aide des touches PageUp et PageDown,
afficher l’analyse des coups (pions et cube) en appuyant sur CTRL-L,
basculer entre l’analyse des coups de pions et du cube avec la touche d,
voir le coup effectivement joué mis en évidence dans l’analyse,
chercher parmi les positions du match avec la commande
ss(ex:ss E>80) ; Esc ramène ensuite au coup étudié (voir Panneau Recherche).
La dernière position visitée dans chaque match est mémorisée et restaurée
automatiquement. Appuyer sur CTRL-Tab ou exécuter la commande match
pour afficher ou masquer le panneau.
Le bouton ⊕ d’une ligne enrichit ce match depuis un fichier. Il n’y a rien de nouveau derrière : réimporter le même match dans un autre format l’enrichit déjà en place — l’empreinte canonique reconnaît qu’il s’agit du même match, et les analyses et commentaires du second fichier viennent compléter le premier. Ce que le bouton apporte, c’est qu’on le trouve : personne ne devine qu’un import est aussi un enrichissement. Le compte rendu qui suit dit lequel des deux a eu lieu — « enrichis : 1 » plutôt que « importés : 1 ».
Chaque match peut être exporté en transcription Jellyfish .mat via le
bouton ⬇ de la liste des matchs ou le bouton .mat de la fiche du match.
Un clic sur un match ouvre sa fiche. Son onglet Transcription liste les
coups partie par partie, et un clic sur un coup y amène la revue. Chaque coup y porte
sa gravité : ? pour une erreur, ?? pour un blunder, un filet de
couleur en marge de la ligne, et le coût du coup en équité au survol de la
marque. Les seuils sont ceux de la base (Configuration), ceux que
comptent les statistiques. Le coup est jugé tel qu’il a été joué : une même
position jouée deux fois dans le match reçoit deux jugements. Un coup que
l’analyse ne note pas ne porte aucune marque.
L’en-tête de chaque partie compte ses marques, qu’elle soit dépliée ou non : on voit sans l’ouvrir dans quelle partie se trouvent les blunders.
Le bouton Fusionner les joueurs de la barre d’outils du panneau ouvre une fenêtre listant tous les noms de joueurs de la base avec leur nombre de matchs : sélectionner les variantes d’orthographe d’un même joueur, choisir le nom canonique à conserver, puis fusionner. Utile pour unifier les statistiques par joueur lorsqu’un même joueur apparaît sous plusieurs noms.
Lorsqu’un match est ouvert, une barre d’informations apparaît au-dessus du plateau : elle rappelle les joueurs en présence (joueur 1 contre joueur 2) ainsi que le contexte du match (événement, lieu, ronde, date et longueur du match, lorsque ces informations sont disponibles). Cette barre s’affiche aussi en dehors du mode match : lorsqu’une position étudiée (issue d’une recherche, d’une collection ou d’un accès direct) provient d’un ou de plusieurs matchs, elle en indique la provenance — le premier match concerné et, le cas échéant, un badge « +N » listant les autres au survol. Une position importée seule, qu’aucun match ne référence, n’affiche rien.
Les onglets Recherche et Eval remplacent le plateau par un plateau de travail : un bandeau en haut du plateau le dit (« Plateau de recherche », « Plateau d’évaluation »), et la barre d’informations est masquée tant qu’elle décrirait une position qui n’est pas à l’écran. Le retour à l’analyse restaure la position étudiée.
À l’ouverture d’une base contenant des matchs, le panneau Matchs est affiché d’emblée et la revue débute directement sur la première position, afin de commencer immédiatement la navigation.
Note
Une base de données ne peut être ouverte en écriture que par une seule fenêtre à la fois. Si vous ouvrez une base déjà ouverte dans une autre fenêtre de blunderDB, elle s’ouvre en lecture seule : la navigation, la recherche et l’analyse restent possibles, mais toute modification est désactivée et la barre de titre affiche « [lecture seule] ».
Astuce
Se référer à Raccourcis clavier pour les raccourcis disponibles.
Panneau Transcription
Le panneau Transcription (CTRL-MAJ-T, commande transcribe ou tr)
sert à taper un match qu’on a sous les yeux — une feuille de match, un
enregistrement vidéo — pour en faire un match de la bibliothèque. Ce qui se
tape est un brouillon : il vit dans la base, se referme et se rouvre, et
n’entre ni dans les statistiques ni dans les recherches tant qu’il n’a pas été
enregistré en match.
Le panneau s’ouvre sur la liste des brouillons de la base : date de
dernière modification, joueurs, longueur, nombre d’actions, et le match déjà
produit (# suivi de son identifiant) ou la mention « aucun match ». Un clic
ouvre un brouillon, et le bouton Brouillons de la barre y ramène. Le bouton
Nouvelle transcription déplie le formulaire de création.
La liste se parcourt aussi au clavier : BAS et HAUT (ou j et k) déplacent le surlignage, ENTREE ouvre le brouillon surligné, n déplie le formulaire. Le premier brouillon est surligné à l’ouverture et c’est le plus récemment modifié : reprendre le travail de la veille tient donc en deux touches, CTRL-MAJ-T puis ENTREE.
Le formulaire ne demande qu’une chose : la longueur du match. La valeur
0 désigne une partie d’argent et fait apparaître les cases Jacoby et
Beaver. Le champ s’ouvre sur la longueur du dernier brouillon modifié, ou sur
7 lorsque la base n’en contient aucun. Les noms des joueurs ne sont pas
demandés : le brouillon désigne les camps par Joueur 1 et Joueur 2, et la
liste affiche « Sans nom ».
Tout ce qui se déduit de ce qui a été tapé — la longueur du match (ou « Argent »), le score, la mention Crawford lorsque la partie en cours l’est, le numéro de la partie, l’état du videau — sa valeur, centré ou au nom de celui qui le possède — et le camp au trait — s’affiche dans la barre de match, au-dessus du plateau : c’est là que le regard se trouve déjà quand on se demande qui est au trait. L’action attendue, elle, est écrite en toutes lettres dans la barre d’état : « dés de Kévin », « réponse d’Alice au double ».
La barre du brouillon, en tête du panneau, ne porte que les gestes qui font sortir le brouillon de lui-même, les deux flèches d’annulation et le sens du plateau.
Le joueur 1 reste en bas du plateau, quel que soit le camp au trait. Un match qui se transcrit est une partie qui se déroule : le trait change à chaque demi-coup, et suivre le trait retournerait le damier d’un tour sur l’autre — les pions qu’on vient de regarder passeraient en haut et l’œil referait le trajet à chaque jet. Le trait se lit aux dés, qui changent de côté. Le bouton ⇅ de la barre retourne le plateau et montre le joueur 2 en bas ; il ne modifie pas le brouillon, et l’affichage revient à l’endroit à la fermeture. À ne pas confondre avec le bouton Inverser les joueurs du volet Métadonnées, qui échange les deux joueurs dans le document lui-même.
Le bouton Métadonnées de la barre déplie l’en-tête du brouillon, à tout moment : les noms des deux joueurs — autocomplétés depuis les joueurs de la base —, l’événement, le lieu, la ronde, la date (celle du jour par défaut), le transcripteur (l’utilisateur de la base par défaut) et le tournoi auquel le match sera rattaché lors de l’enregistrement. Aucun champ n’est obligatoire : un brouillon sans noms s’enregistre et s’exporte, avec des en-têtes vides. Le bouton Inverser les joueurs échange les deux noms, donne toutes les actions au camp d’en face et retourne le plateau : c’est le même match, lu de l’autre côté.
La longueur du match se change dans ce même volet, à tout moment : le score,
la partie Crawford et le référentiel — les parties d’argent lorsque la longueur
vaut 0, et les cases Jacoby et Beaver apparaissent alors — sont
recalculés d’un bout à l’autre du brouillon, et les actions postérieures à la
victoire sont marquées « au-delà de la fin » sans qu’aucune ne soit supprimée.
La longueur entre dans l’identité des positions : après un enregistrement, la
changer puis réenregistrer écrit des positions neuves, à analyser, et les
anciennes disparaissent dès que plus rien ne les retient.
Sous la barre, le brouillon occupe trois régions : la palette des cibles souris, les coups candidats et le transcript. Elles se placent selon la largeur du panneau. Dans un panneau large — le dock du bas — les trois sont de front, la palette à gauche. Dans un panneau moyen, les candidats occupent le haut et le transcript vient à côté du triangle des jets, dans la place que celui-ci laisse à sa droite. Dans un panneau étroit, les trois se suivent : les candidats, la palette, le transcript — le triangle et le transcript n’y tiennent pas côte à côte sans amputer le transcript de sa seconde colonne, et élargir le dock de quelques dizaines de pixels suffit à les réunir. Dans tous les cas la règle est la même : rien ne s’intercale entre les deux cases du jet et la première ligne des candidats, et cinq candidats au moins se lisent sans faire défiler quoi que ce soit.
La palette montre les deux dés au fur et à mesure de leur saisie ; un clic dessus les efface, comme RETOUR ARRIERE. Une partie commence par son premier coup, joué par le gagnant du jet d’ouverture : ses deux dés se tapent comme ce jet, dé du joueur 1 puis dé du joueur 2, et le plus fort donne le coup à son camp, qui joue les deux dés. Le coup se choisit ensuite parmi les candidats, comme tout autre. Les égalités, rejouées à la table, ne se transcrivent pas ; un premier coup tapé en double est enregistré tel quel et marqué « dés incohérents », aucun jet d’ouverture n’étant un double, et un double de videau avant le premier coup est marqué « action de videau impossible ». Une action de videau inscrite après la fin d’une partie porte la même marque : elle reste dans la partie terminée, n’en ouvre pas de nouvelle, et se supprime à la main.
Dès que le second dé tombe, tous les coups légaux du jet sont listés, classés par le moteur embarqué, le premier présélectionné et ses flèches posées sur le plateau. La liste donne le coup, son équité et son écart au meilleur : transcrire, c’est reconnaître le coup qu’on a vu jouer, pas le juger — le panneau Évaluation est là pour cela. Ce classement est une évaluation : il est affiché, il n’est jamais écrit dans la base. Lorsque le moteur n’est pas disponible, les coups sont listés sans classement et la liste le dit en tête.
La molette sélectionne le candidat suivant ou précédent, au-dessus de la liste comme au-dessus du damier : le regard reste sur le plateau et les flèches défilent, ce qui reconnaît un coup plus vite que la lecture de sa notation. Un clic sur une ligne la sélectionne, un double-clic la valide.
Le triangle des vingt et un jets est posé sous les deux cases du jet, à côté du clavier et non à sa place : deux chiffres restent deux fois plus rapides qu’un clic, et le triangle est là pour qui transcrit la souris à la main. Une case par jet, jamais deux : 3-1 et 1-3 sont le même jet.
Le coup joué au plateau dispense de lire les dés. Tant qu’aucun dé n’est saisi, un clic sur un pion puis sur sa destination — ou un glissé de l’un à l’autre — joue le coup sur le damier, contraint aux coups légaux ; les destinations offertes par le pion choisi s’allument. Les deux dés se déduisent des pas : jouer 13/7 puis 8/7 dit 6-1 sans qu’un chiffre ait été tapé, et l’action est enregistrée dès que le coup est achevé. Retour arrière défait le dernier pas, un chiffre abandonne le coup et revient à la saisie par les dés, et un double-clic hors du damier le reprend depuis le début. Quand plusieurs jets produisent le même coup — une sortie que plusieurs dés couvrent, un dé qui n’est pas jouable — rien n’est enregistré et le triangle ne laisse cliquables que ces jets-là : le jet n’est jamais deviné à la place de celui qui regarde la partie.
Les deux dés saisis, le plateau joue aussi, contraint aux coups légaux de ce jet — en bout de document comme sur une action relue, dont le curseur a chargé les dés. Chaque pas joué ne garde dans la liste que les candidats qui le contiennent, le premier d’entre eux présélectionné : c’est le geste du coup lointain, là où descendre au douzième candidat coûte treize touches. Un coup légal achevé est enregistré aussitôt, avec les dés tels qu’ils ont été tapés ; sur une action relue, il la remplace.
Un coup illégal se transcrit tel qu’il a été joué, sans bouton ni changement de mode. Les dés saisis, un glissé qu’aucun coup légal n’offre pose le pion là où il est lâché — y compris depuis un point d’où aucun coup légal ne part, pourvu qu’il porte un pion du camp au trait. Le coup sort alors des règles : la suite se joue librement, au clic comme au glissé, la liste des candidats cède la place à une ligne qui le rappelle, et rien n’est enregistré avant ENTREE, qui écrit les dés saisis, les pas et le plateau obtenu. Retour arrière défait le dernier pas ; défaire le seul pas hors des règles rend la liste. Sans dés saisis, le glissé reste contraint : un coup illégal ne dit pas quel jet l’a produit.
Le coup se tape aussi au clavier, dans le transcript. Un double-clic sur la
cellule d’un coup — ou d’une danse, d’un coup non consigné — la change en champ,
pré-rempli de sa notation. On n’y tape que le coup, 13/7 8/7*, bar/22 ou
6/off : les dés sont ceux de la cellule. ENTREE l’enregistre à la place du
coup écrit, ÉCHAP referme la cellule sans rien écrire, et un texte qui ne dit
aucun coup laisse le champ ouvert. La cellule en pointillés de la saisie en
cours s’ouvre de même, dès que ses deux dés sont saisis.
Un coup saisi par le glissé libre ou par la notation qui se trouve être légal
reste un coup ordinaire — la comparaison se fait sur le plateau obtenu, jamais
sur la provenance du geste ; sinon il est marqué « coup illégal » dans le
transcript, et l’export .mat avertit avant d’écrire le fichier, sans jamais
refuser.
Sur la ligne des dés, la rangée Doubler, Prendre, Passer, Abandonner reprend à la souris les quatre gestes de videau : ce sont, avec les deux dés, les cinq réponses possibles à une seule question — qu’a fait le camp au trait ? Elle dit de qui est le tour : le camp au trait annonce — doubler, abandonner — ou le camp d’en face répond — prendre, passer ; jamais les quatre à la fois, et un bouton dont le geste ne répondrait à rien reste éteint. Le clavier, lui, ne refuse jamais rien : un bouton éteint est une cible qu’on n’offre pas, pas un geste interdit. « Abandonner » n’enregistre rien encore : la rangée devient les trois niveaux — simple, gammon, backgammon — et « Annuler », qui reprend la touche ÉCHAP. Le videau dessiné sur le plateau est la seconde cible de ces gestes : un clic dessus propose un double. Devant une offre il ne répond pas — la prise et la passe sont deux réponses symétriques et vivent ensemble dans la rangée, un clic chacune.
La barre d’état dit ce que le brouillon attend, en un mot : la danse enregistrée d’office, le premier coup d’une partie, la réponse attendue à un double, le niveau attendu après une résignation, la correction en place, le coup « à revoir » dont le jet a changé. Elle y répond aussi aux gestes qui n’ont rien à faire — « rien à annuler », « aucune action sous le curseur » — le temps d’une seconde et demie. L’incohérence qu’une action a laissée derrière elle, elle, est signalée en tête du transcript, là où se trouve la cellule fautive.
Une partie se termine par une passe, par une résignation ou par la sortie du quinzième pion (simple, gammon ou backgammon, multiplié par la valeur du videau). Le score, la partie Crawford et la fin du match paraissent alors dans la barre de match, et le premier coup de la partie suivante est attendu.
Le score d’une partie est celui que donnent les parties précédentes, sauf s’il
a été annoncé autrement à la table. Un double-clic sur le score de l’en-tête
d’une partie, dans le transcript, le change en champ pré-rempli : on y tape le
score auquel la partie a été jouée — 3-2, 3–2 ou 3 2 —, ENTREE
l’enregistre, ÉCHAP referme le champ sans rien écrire, et un champ vidé puis
validé revient au score dérivé. La partie est jouée à ce score : la partie
Crawford, la fin du match et les parties suivantes en découlent, et le match
enregistré comme le fichier .mat le portent. Un score qui diffère du score
dérivé est marqué, l’info-bulle donne celui-ci, et la première action de la
partie porte l’incohérence « score annoncé incohérent ». En argent, il n’y a pas de
score à annoncer.
Le transcript occupe la moitié droite du panneau : une colonne par joueur, une
ligne par tour, l’action de videau et la fin de partie dans la colonne de celui
qui agit. La cellule du curseur est encadrée ; déplacer le curseur ramène le
plateau à la position de l’action visée et affiche ses candidats, le coup joué
sélectionné. Une incohérence (coup illégal, double trait, videau impossible,
action au-delà de la fin du match, dés incohérents, coup non consigné, score
annoncé incohérent) décore sa
cellule et se nomme dans une info-bulle. Le coup non consigné est le cas d’un
fichier .mat relu : gnubg y écrit ??? quand il n’a pas gardé le coup
joué, le jet est connu et le coup ne l’est pas, et poser le curseur sur cette
cellule propose les coups de ce jet pour le renseigner. Un double trait laisse
une case vide, encadrée de pointillés, dans la colonne du camp dont le tour
manque : le curseur s’y arrête, un clic l’y mène, et c’est là que se tape le
tour manquant — une décision supprimée, par exemple. Les parties se replient ; celle du curseur est
ouverte.
Ce qui est en train d’être tapé se dessine dans le transcript, en pointillés, à la place exacte où il sera écrit : les dés au fur et à mesure qu’ils tombent, la notation du coup dès qu’il est sélectionné, et dans la colonne du camp à qui l’action revient. Une correction recouvre la cellule qu’elle remplace, une insertion ouvre une cellule entre ses deux voisines, une saisie neuve paraît au bas de la partie en cours. Rien n’est écrit dans le brouillon avant la validation ; ce que l’on lit et ce que le document dira ne divergent jamais.
Corriger, c’est taper sur la cellule où l’on est. Le curseur posé sur une action, un chiffre en recommence le jet sur place, et les quatre gestes de videau valent eux aussi comme corrections : sur une passe, t — ou le bouton Prendre — écrit une prise à la place de la passe, sans qu’il faille la supprimer puis insérer. La partie reprend alors son cours : une cellule s’ouvre juste après la prise, au camp du doubleur, et la suite de la partie s’y tape comme d’habitude, insérée devant le premier coup de la partie suivante, jusqu’à ce que la partie se termine. Ce premier coup garde le score auquel sa partie commençait, désormais annoncé : si la fin de la partie reprise en donne un autre, l’écart est marqué. Les mêmes touches remplissent la cellule qu’une insertion vient d’ouvrir : i puis d insère un double devant l’action visée.
Revenir sur la dernière action, c’est revenir là où la transcription s’écrit. Un chiffre tapé sur elle en corrige encore le jet, mais une fois ce jet retapé, le chiffre suivant la valide et ouvre la décision d’après ; ENTREE la valide de même. Les décisions suivantes s’ajoutent alors à la suite, comme la première fois.
Taper un autre jet sur le premier coup d’une partie décide à nouveau qui commence : le dé du joueur 1 se tape en premier, celui du joueur 2 ensuite, et c’est le plus fort qui l’emporte — gros dé d’abord, le coup revient au joueur 1, en bas du plateau ; petit dé d’abord, il revient au joueur 2, en haut. Le premier candidat du nouveau jet est présélectionné et le coup est à revoir. Retaper le même jet, dans un ordre ou dans l’autre, ne change rien. Pour donner le premier coup à l’autre joueur sans changer de jet, c’est s : l’ordre des dés suit le camp, et un premier coup joué par le camp que cet ordre ne désigne pas est marqué « dés incohérents ». La suite de la partie garde ses camps.
Une insertion au milieu du document continue d’insérer : la validation ouvre une cellule vide à la suite, et l’action suivante s’insère à son tour au lieu d’écraser celle d’après. C’est ce qui permet de rattraper toute la fin d’une partie — une passe qui aurait dû être une prise — sans perdre ce qui a déjà été tapé de la partie suivante. La fin de la partie, ou un déplacement du curseur, met fin à l’insertion : le curseur se pose alors sur le premier coup de la partie suivante.
Suppr (ou x) retire la décision en cours d’édition et recule sur la précédente, prête à être corrigée : sur une cellule écrite, l’action disparaît ; sur une insertion ouverte ou un jet tapé en bout de document, c’est la saisie qui est abandonnée. Suppr pressée à répétition remonte ainsi le transcript en effaçant. Les actions suivantes gardent leur camp, et le double trait qu’une suppression laisse est marqué sans que le curseur y soit ramené.
Un clic droit sur une cellule ouvre les corrections de cette action — insérer avant, insérer après, supprimer, changer de camp — et amène le curseur dessus au passage ; ce sont les mêmes gestes que les touches i, a, x et s, et le menu du navigateur n’est retiré que là. Ils n’ont pas de boutons ailleurs : un bouton qui agirait sur « l’action du curseur » viserait une cellule que l’on ne voit pas forcément, quand le clic droit désigne la sienne.
La barre du brouillon porte ses deux seules sorties. « Terminer » (CTRL-ENTREE) écrit le match dans la bibliothèque et libère le brouillon ; l’analyse des seules positions nouvelles démarre aussitôt, avec sa progression et son annulation dans la barre d’état. « Abandonner » supprime le brouillon sans match ; la confirmation n’est demandée que pour un brouillon qui n’a jamais été terminé, puisqu’il emporte tout ce qui y est écrit. À côté, la barre dit ce que Terminer fera — un nouveau match, ou le remplacement du match #n. Elle ne dit rien du salut du brouillon lui-même : il est écrit dans la base après chaque action, et revenir à la liste le laisse à reprendre plus tard.
« Texte .mat » ouvre le fichier Jellyfish tel qu’il serait écrit, dans une fenêtre assez large pour que ses colonnes restent alignées, avec un bouton pour le copier. « Exporter .mat » écrit ce même fichier sur le disque. Les deux flèches ↶ et ↷ annulent et rétablissent, comme CTRL-Z et CTRL-MAJ-Z.
Si l’analyse d’un match transcrit a été interrompue — l’application fermée pendant le lot —, la barre d’état le signale à la prochaine ouverture de la base et propose de la terminer. Rien n’est retenu de cette interruption : la proposition revient tant qu’il reste des positions à analyser, et le lot relancé ne porte que sur ce match, jamais sur toute la bibliothèque.
Un brouillon qui porte des incohérences est terminé tout de même, après un avertissement : rien n’est refusé. Un coup illégal est exporté tel qu’il a été joué, avec l’avertissement que gnubg et XG le signaleront (« Invalid move ») et divergeront ensuite.
Le panneau Matchs rappelle chaque brouillon en cours au-dessus de la liste des matchs : la ligne « Brouillon en cours » ouvre l’onglet Transcription.
Pour corriger un match de la bibliothèque, le bouton ✎ de la liste des matchs
ou « Éditer la transcription » de sa fiche ouvre un brouillon depuis ce
match — ou rouvre celui qui y est déjà ouvert : un seul brouillon par match.
Terminer ce brouillon remplace le match sous le même identifiant ; les
positions des actions inchangées gardent leurs commentaires, leurs analyses et
leurs cartes. Un match importé (XG, GnuBG, BGF) porte des analyses et des
commentaires qu’un .mat ne porte pas : avant d’ouvrir, un dialogue dit
jusqu’à combien, et que terminer le brouillon peut les perdre.
Astuce
Se référer à Raccourcis clavier pour les raccourcis disponibles.
Panneau Tournois
Le panneau Tournois : un tournoi par ligne, nombre de matchs, PR du joueur de référence.
Le panneau Tournois (CTRL-Y) permet de regrouper des matchs en tournois pour un suivi organisé et une analyse statistique par événement. Les tournois peuvent être créés, renommés et supprimés ; les matchs peuvent leur être assignés. Les statistiques du panneau Stats peuvent être filtrées par tournoi. Appuyer sur CTRL-Y pour afficher ou masquer le panneau.
Les tournois se remplissent d’eux-mêmes à l’import. Les fichiers XG, GnuBG et BGF nomment leur événement ; à l’import d’un match nouveau, blunderDB le classe dans le tournoi de ce nom et crée celui-ci s’il n’existe pas encore. La date et le lieu du tournoi restent vides — c’est ici qu’on les renseigne. Un match déjà présent dans la base n’est jamais reclassé : réimporter son fichier ne défait pas le rangement fait à la main.
La colonne PR de chaque tournoi affiche le PR du joueur de référence — c’est-à-dire le joueur présent dans le plus grand nombre de matchs du tournoi (en cas d’égalité, celui ayant pris le plus de décisions). Le PR ne mélange donc pas votre jeu avec celui de vos adversaires : pour vos propres tournois, il reflète votre performance seule. Le nom du joueur de référence apparaît en infobulle au survol de la valeur.
Diriger un tournoi
blunderDB sait diriger un tournoi, et pas seulement le ranger. La direction est portée par le moteur Nicomaque, de Nicolas Harmand : c’est lui qui tient le format, les appariements, les tableaux et le classement ; blunderDB lui donne son interface et garde ses matchs. Le bouton ⓘ de la barre du panneau rappelle ce crédit et mène au dépôt et à la documentation du moteur.
Un tournoi dirigé se choisit dans le panneau Panneau Tournois
(CTRL-Y, commande direct) : ouvrir un tournoi, puis Diriger ce
tournoi. Un tournoi déjà dirigé porte son état à côté de son nom et le bouton
devient Ouvrir. Tant qu’une direction est ouverte, la zone principale montre
le tournoi à la place du plateau — c’est la seule exception de blunderDB à
cette règle ; passer sur n’importe quel autre onglet ramène le plateau.
Une direction a trois états : en préparation tant qu’aucun match n’a été lancé, en cours ensuite, clos une fois le classement figé. Rouvrir un tournoi clos est possible, et demande une confirmation : le classement final cesse d’être final.
Tout ce qui est décidé est écrit dans un journal, et rien d’autre ne l’est. Le classement, les arbres, les propositions et les avertissements sont rejoués depuis ce journal à chaque ouverture : une coupure de courant ne coûte rien, et une correction n’efface jamais ce qui s’est passé — elle s’ajoute.
La page Direction
C’est là que le directeur passe l’essentiel de son temps. Elle porte, de haut en bas : les avertissements du moteur, qui restent visibles et ne bloquent jamais rien ; la grille des tables, dont l’en-tête porte le bouton Imprimer la feuille d’appariements ; la dernière décision ; la file des propositions ; et les joueurs libres. La grille précède la file : une file longue ne la pousse jamais hors de l’écran.
La vue occupe toute la largeur de la zone principale, et chaque onglet défile seul : quitter un onglet puis y revenir, ou passer d’une épreuve à l’autre, retrouve la position où on l’avait laissé. Les boutons et les champs font au moins 40 pixels de haut, pour se viser sans précision au comptoir ; le nombre de colonnes de la grille suit la largeur de la zone, non celle de la fenêtre. Dans les Réglages, chaque section se replie sur son titre, et le bouton Ouvrir dans le navigateur de l’en-tête ouvre la page murale en un clic dès qu’un dossier de sortie est choisi.
Une ronde proposée s’annonce avant d’être lancée : Ronde à venir…, à côté de Imprimer la feuille, demande la date et l’heure à imprimer (« lundi 21/09, 20 h ») et imprime la feuille des appariements de la file, marquée « annoncée ». Rien n’est lancé ni écrit au journal : la ronde se lance le jour venu, à son heure. Un appariement qui attend une table libre porte un tiret à la place du numéro de table.
En tête de la vue tournoi, la bande d’horloge tient en une ligne : l’heure, le temps écoulé depuis le premier match lancé, les matchs joués et en cours, le rythme observé en minutes par point face au rythme prévu, les matchs lents, la prochaine pause et la fin estimée. La fin estimée est la prévision du moteur : il rejoue le journal, termine le tournoi quinze fois au rythme prévu, et la bande en donne la médiane, repoussée après les pauses déclarées. Une nuit qui n’est pas déclarée comme pause compte donc comme du jeu. Une heure qui n’est pas celle du jour porte son jour.
À partir du deuxième jour, le temps écoulé laisse la place au jour de jeu (le jour du premier match lancé est le jour 1) et au temps de jeu : le temps pendant lequel au moins un match était en cours, sans les nuits ni les intervalles où aucune table ne jouait. Un tournoi clos n’a plus de bande d’horloge.
Une proposition se confirme d”un clic sur Lancer. Tout lancer confirme en deux clics les propositions qui ont une table, après en avoir montré la liste ; Confirmer est en tête de cette liste. Les appariements sans table restent dans la file, marqués « aucune table libre » : en mode rondes, une ronde reste ouverte tant que tous ses joueurs n’y sont pas engagés. « Ignorer pour l’instant » n’écrit rien : le moteur est déterministe, et la proposition revient identique au prochain appel. Apparier à la main reste offert en permanence — le moteur propose, le directeur décide.
Un match apparié à la main sans numéro de table prend la première table libre ; une table où un match est en cours est refusée. Si toutes les tables sont prises, il est lancé quand même et sa case apparaît au bout de la grille, « sans table », jusqu’à ce qu’on le déplace sur une table.
Une proposition peut porter une remarque du moteur : aucune table libre, ou une fin de match attendue pendant une pause. Elle reste lançable dans les deux cas. Lorsqu’une phase fonctionne par micro-rondes, la file montre le temps qui reste avant le prochain lot ; à l’échéance les propositions apparaissent d” elles-mêmes, et rien ne se lance tout seul.
La fiche de résultat
Un clic sur une table occupée ouvre la fiche du match. Elle montre deux grandes cibles : les noms des deux joueurs. Cliquer celui qui a gagné enregistre le résultat — deux clics en tout, table comprise. Le vainqueur est la seule chose exigée ; le score est libre, l’un et l’autre ou aucun des deux. Au clavier, GAUCHE ou DROITE choisit le vainqueur et ENTRÉE l’enregistre. La fiche ne se ferme qu’une fois le résultat écrit : un échec la laisse ouverte, avec son message.
Le bouton ⋯ de la fiche déplie ce qui sert rarement : le forfait — chaque bouton nomme l’absent et celui qui gagne —, une remarque libre (« tombé au temps », « abandonné pour raison de… »), le déplacement du match sur une autre table, et son annulation. Le forfait et l’annulation se confirment. Déplacé sur une table occupée, le match échange sa table avec celui qui l’occupe : deux matchs ne partagent jamais une table, et le même geste les remet en place. Si un ancien journal en a laissé deux sur une table, la grille montre les deux cases, signalées, jusqu’à ce qu’on en déplace un.
Une erreur de saisie vue aussitôt se reprend en deux clics sous la grille : Corriger la dernière décision, puis le bon vainqueur (CTRL-Z ouvre la même reprise). Une correction plus ancienne se fait depuis l”historique.
Le plein écran
La touche F11 de la page Direction, ou le bouton en bas à droite, la met en plein écran : la barre d’outils, les onglets, le plateau, le panneau et la barre d’état disparaissent, et toute la fenêtre est rendue à la direction. Le mode traverse les onglets de la direction (Direction, Joueurs, Historique, …). Un menu ou une fiche ouverts se ferment d’abord sur ÉCHAP ; un second ÉCHAP, ou F11, sort du plein écran et rend la fenêtre à son état précédent. Quitter la page, en changeant d’onglet de l’application ou en fermant la direction, y met fin aussi.
La recherche rapide
La touche / de la page Direction ouvre la palette sur le tournoi seul : joueurs, tables, matchs en cours et épreuves de l’événement ouvert, ou de l’épreuve seule quand elle n’est dans aucun événement. On tape un nom, un club ou un numéro de table (« 4 » ou « t4 ») ; les joueurs à une table passent avant les joueurs libres. ENTRÉE amène à l’objet : un joueur en cours de match, un match ou une table occupée ouvrent la fiche de la table, une table libre se focalise dans la grille, un joueur libre s’affiche dans l’onglet Joueurs filtré sur son nom, une épreuve devient l’onglet courant. Un résultat d’une autre épreuve de l’événement change d’abord d’épreuve. ÉCHAP referme sans rien ouvrir, et la touche reste une barre oblique dans un champ de saisie. CTRL-MAJ-P ouvre la palette complète, qui contient aussi le tournoi.
Les joueurs
L’onglet Joueurs inscrit, corrige et retire. Le champ d’inscription garde le focus et se vide après chaque nom : vingt joueurs s’inscrivent au clavier seul. L’autocomplétion propose les joueurs de la base ; en choisir un fixe l’orthographe exacte que portent ses matchs et pré-remplit sa cote avec son PR.
L”annuaire regroupe les inscrits de tous les tournois dirigés de la base, dédoublonnés par nom, avec le club et la cote de leur dernière inscription. Il n’est jamais stocké : supprimer une direction en retire ses inscrits. Reprendre les inscrits d’un tournoi précédent est un clic, quel que soit leur nombre ; l’annuaire se copie en CSV ou s’enregistre dans un fichier (Enregistrer…), et se relit collé.
Une épreuve en doubles inscrit des paires : la case Paire ajoute le nom, le club et la cote du partenaire. La paire joue sous le nom « A / B », que portent aussi ses matchs ; sa cote est la moyenne des deux, et une valeur saisie dans Cote de la paire la remplace. L’annuaire garde les deux personnes, jamais la paire.
Avant Inscrire, l’aperçu d’un CSV collé liste les lignes illisibles — sans nom, sans séparateur quand les autres lignes en ont, cote qui n’est pas un nombre — et les doublons, dans le collage ou avec un joueur déjà inscrit. Un doublon n’est pas inscrit, sauf si on coche sa case.
Un retardataire arrivé après le tirage prend une place d’exemption libre si le tableau en offre une, et l’interface écrit à côté du champ où il entrera avant qu’on valide. Sans place libre, il est inscrit quand même et la vue dit dans quelle phase il entrera. Aucun tirage déjà fait n’est refait.
Un retrait se fait maintenant ou après son match en cours, selon que le joueur part tout de suite ou finit ce qu’il joue ; il se confirme.
Un joueur qui manque une ronde n’a pas besoin d’être retiré : Marquer absent, sur sa ligne, ouvre un petit formulaire sous son nom — jusqu’à une heure (pré-remplie sur l’heure qui suit), ou, quand la phase en cours est un suisse par rondes, jusqu’à la ronde portant son numéro. Le moteur cesse alors de l’apparier, mais son rang, ses vies et sa place au tableau restent ceux qu’il a gagnés — l’absence n’est pas un forfait. Revenir, sur sa ligne, lève l’absence en un clic, avant l’échéance déclarée ou après.
Corriger la fiche d’un joueur retiré — son nom, son club, sa cote — le laisse retiré. Son retour est un geste à part : Réinscrire, sur sa ligne. Il est de nouveau apparié, avec les résultats et les vies qu’il avait en partant ; les matchs perdus par forfait à son retrait le restent.
Arbres, emplacements, classement, historique
L’onglet Arbres dessine les tableaux avec leurs traits, de la première ronde à la finale, la consolante à côté du tableau principal, et, pour un suisse, le tableau des vies. Une poule s’y lit en résultats croisés. Un tableau pas encore tiré montre son squelette grisé. Un match déjà joué y porte son résultat ; un match que le moteur signale y est marqué sur place. Une pastille à côté du nom de l’onglet indique qu’un tableau est en cours.
Cliquer une place (ou Entrée sur une place focalisée) ouvre sur elle la même fiche que sur la grille des tables : le vainqueur d’un match en cours se saisit en deux clics, et un match terminé se corrige en cliquant le nom du vrai vainqueur.
L’onglet Emplacements relie le tournoi à la bibliothèque. Chaque match du tournoi est un emplacement, que l’on peut remplir de deux façons : transcrire le match sur-le-champ (Panneau Transcription), ou y rattacher un match déjà importé. Rien n’est rattaché par déduction : une coïncidence de noms est une suggestion à accepter, un appariement partiel n’est même pas suggéré, et si le fichier d’un match rattaché contredit le résultat enregistré, l’écart est montré sans être résolu — pendant un tournoi, la parole du directeur fait foi.
L’onglet Classement montre le classement courant, section par section, avec
le bilan de chacun (victoires–défaites) et les prix lorsqu’une dotation est
réglée. Deux ex æquo partagent la place et le prix. Un joueur retiré garde le
rang que son parcours lui vaut, noté « retiré » avec son bilan ou l’endroit du
tableau où il s’est arrêté. Clore le tournoi fige le classement final. Le classement se copie en
CSV, dans la langue de l’interface, ou s’enregistre dans un fichier :
Enregistrer… ouvre le dialogue du système sur un nom proposé, le tournoi
suivi du mot « classement » et de la date du jour, et le fichier contient
exactement le CSV copié. En ligne de commande, blunderdb tournament
standings écrit le même CSV.
Clore sans match en cours est un clic. Avec des matchs en cours, le Classement dit combien et attend un second clic sur place : clore fige le classement sans eux, et leur résultat ne se saisit plus. Rouvrir se confirme de la même façon ; le classement final cesse alors d’être final, et la réouverture reste dans le journal.
L’onglet Historique est le journal en clair : une ligne par décision, dans l’ordre, filtrable par joueur ou par match. C’est ce qu’un directeur relit après une contestation, et c’est là qu’une décision ancienne se corrige ou s’annote.
Corriger, sur la ligne d’un résultat, ouvre sous elle la même reprise que la dernière décision : cliquer le bon vainqueur, avec le score s’il faut. Le résultat d’origine reste à sa place dans le journal, la correction s’y ajoute, et le classement en tient compte aussitôt.
Les réglages
L’onglet Réglages s’ouvre sur des formats nommés : six tournois de club prêts à l’emploi, dont le premier est recommandé. En choisir un suffit à commencer ; les champs restent modifiables ensuite.
Se règlent ici : les phases et leur longueur de match, les longueurs tour par tour d’un tableau (« 15, 13, 11 » se lit du dernier tour vers le premier), le nombre de tables, le rythme prévu en minutes par point (8 par défaut ; la bande d’horloge et la fin estimée en partent), les pauses de la journée, la dotation (droit d’entrée, retenue du club, barème par section) et le dossier d’affichage.
Un tableau a trois cases : Consolante (ses perdants jouent un second tableau, section à part au classement), Réconciliation (le vainqueur de la consolante joue celui du tableau principal ; la case n’apparaît qu’avec la consolante) et Recharge (en double élimination, le vainqueur du tableau principal doit être battu deux fois ; la case n’apparaît qu’avec la réconciliation). Une consolante n’a de classement à elle qu’avec un barème : tant que celui de la section Consolante est vide, les Réglages le rappellent. Une phase en Poules se règle par la taille des poules (4 par défaut) et le nombre de qualifiés par poule (2 par défaut).
Les réglages restent accessibles en cours de tournoi : baisser la bascule à 22 h pour finir plus tôt, ajouter une consolante le samedi soir, tant que le tirage du tableau n’est pas fait. Ce qui est alors figé est grisé avec sa raison : le format d’une phase ouverte, le nombre de vies qu’elle a distribué et, dès le tirage d’une phase, la taille de ses poules et son nombre de qualifiés. Enregistrer en cours de tournoi montre d’abord la liste de ce qui va changer, et demande confirmation. Ce que le moteur refuse y figure avec sa raison, et rien n’est alors enregistré : c’est le cas de la consolante, de la réconciliation ou de la recharge d’un tableau déjà tiré.
Une table au plateau cassé se déclare dans Tables hors service : ses numéros, séparés par des virgules (« 7, 12 »). Le moteur ne l’attribue plus, et la grille la montre indisponible ; baisser le nombre de tables retirerait la dernière, pas la cassée. Si un match est en cours sur une table mise hors service, la liste de ce qui va changer le dit et nomme une table libre où le déplacer, depuis la fiche du match.
Les têtes de série sont une option, éteinte par défaut : l’étude du moteur conclut « pas de têtes de série protégées », qui est la culture actuelle du backgammon. Activées, les joueurs sont placés par cote.
Les épreuves d’un événement
Plusieurs épreuves jouées sur les mêmes tables — un principal, un speed, des doubles — se regroupent dans un Événement, en bas des Réglages : Créer et rattacher… crée l’événement avec son nombre de tables, Rattacher… y ajoute une épreuve dirigée. Rattacher montre d’abord ce qui va changer : les tables de l’épreuve deviennent celles de l’événement. Détacher de l’événement rend l’épreuve à elle-même, avec son journal et ses tables ; Supprimer l’événement, après confirmation, le met à la corbeille et détache ses épreuves sans en supprimer aucune.
Dans un événement, aucune épreuve ne propose une table où joue une autre : la grille montre ces tables occupées, avec le nom de l’épreuve, et un appariement sans table libre attend. Une table hors service se coche une fois, dans l’événement, et vaut pour toutes ses épreuves ; le nombre de tables, les tables hors service et les pauses modifiés dans les Réglages d’une épreuve valent aussi pour l’événement, et la liste de ce qui va changer nomme les autres épreuves.
Les propriétés des tables se règlent dans le panneau Événement : un tableau d’une ligne par table, avec son nom (« Stream », par exemple), sa salle (un libellé libre), une case Réservée et les joueurs auxquels elle est Attitrée, choisis parmi les inscrits des épreuves de l’événement. Pour quarante tables, Tables de N à M, salle pose une salle sur toute une plage d’un geste ; Enregistrer n’écrit que les tables qui portent une propriété, les autres restent des tables ordinaires. Une table réservée n’est jamais proposée, mais on peut y placer un match à la main, par un lancement, un déplacement ou un glisser-déposer. Une table attitrée reçoit en premier le match de son titulaire, quand elle est libre ; sinon le match reçoit une table ordinaire, et hors des matchs de ses titulaires elle se comporte comme une table réservée. Deux titulaires de tables différentes qui se rencontrent jouent sur la plus petite des deux.
Une salle est l’ensemble des tables qui portent le même libellé : « salle A » pour les tables 1 à 20, « salle B » pour les suivantes. Dans les Réglages de chaque épreuve rattachée, Salles où joue cette épreuve coche les salles où elle joue : le DMP en B, le speed en A. Aucune case cochée, c’est toutes les tables ; une épreuve ne reçoit aucune proposition hors de ses salles et ne peut pas y déplacer un match. Retirer une salle qui porte un match en cours de l’épreuve est refusé, en nommant la table. Une épreuve qui joue seule règle les mêmes propriétés de table dans ses propres Réglages, sans salles d’épreuve.
Ouvrir la Direction d’une épreuve d’un événement ouvre aussi les autres : un onglet par épreuve apparaît en haut de la Direction, chacun avec son résumé — propositions en attente, matchs en cours, une alerte s’il y en a. Changer d’épreuve est un clic sur son onglet, sans confirmation ; l’épreuve quittée ne se ferme pas et ne rejoue rien, elle reste telle qu’on l’a laissée. Un tournoi hors de tout événement n’a qu’une épreuve : pas d’onglet à montrer.
L’onglet Toutes les tables, à gauche des épreuves, montre toutes les tables de l’événement en une seule grille : une case par table, quelle que soit l’épreuve qui l’occupe, marquée du nom et de la couleur de son épreuve. La fiche de résultat, les menus contextuels, le clavier et le glisser-déposer y fonctionnent comme dans la grille d’une épreuve, et chaque geste s’adresse à l’épreuve de la case. Glisser un match sur une table occupée par une autre épreuve échange les deux matchs après une confirmation qui nomme les deux épreuves. Sous la grille, les propositions de toutes les épreuves sont groupées par épreuve, chacune avec son bouton Lancer. Cliquer sur une épreuve ou sur un onglet de vue quitte Toutes les tables.
Quand l’événement a plusieurs salles, la grille se groupe par salle, sous le nom de chacune. Le nom d’une table s’affiche à côté de son numéro, avec un drapeau pour une table réservée et une étoile suivie des titulaires pour une table attitrée ; les propositions nomment aussi la table.
Une même personne peut jouer plusieurs épreuves de l’événement : deux Participants du même nom sont la même personne, et pour une paire de doubles chacun des deux membres compte. Tant qu’elle joue dans une épreuve, les autres ne la proposent pas, et leur liste En attente dit où elle joue : « joue au principal, table 4 ». L’appariement à la main reste permis : le match démarre, et sa case de la grille porte la même mention.
L’affichage du tournoi
Un tournoi se regarde. Choisir un dossier d’affichage dans les Réglages suffit une fois pour toutes : blunderDB y réécrit une page HTML autonome à chaque changement, et la page se recharge d’elle-même. Elle s’ouvre hors ligne, sur un second écran ou projetée, et ne charge aucune ressource extérieure. Ouvrir dans le navigateur l’affiche immédiatement.
La feuille d’appariements se pose sur la table d’accueil : un clic sur Imprimer la feuille ouvre le dialogue d’impression du système. Une ligne par match — les deux joueurs, la longueur, la table, deux cases vides pour le score — et une ronde de trente-deux joueurs tient sur une page A4.
Un événement a son propre dossier de sortie, choisi une fois dans son panneau de
Réglages avec le même bouton Choisir le dossier : blunderDB y écrit
index.html, la page murale de l’événement — une ligne par table, quelle que
soit l’épreuve qui l’occupe, avec les rondes annoncées de chaque épreuve et un
lien vers sa propre page — et chaque épreuve rattachée écrit la sienne dans un
sous-dossier. Un geste dans n’importe quelle épreuve de l’événement régénère la
page murale ; le dossier propre d’une épreuve rattachée est gardé mais ignoré
tant qu’elle reste dans l’événement.
Quand une épreuve est en phase de tableau et que celui-ci est tiré, sa page murale et celle de l’événement montrent l’arbre en grand, lisible de loin : une colonne par tour, les perdants qui descendent en consolante en pointillé. La page défile d’elle-même, sans script, entre son contenu habituel (les tables pour l’événement) et l’arbre de chaque épreuve en tableau, douze secondes chacun ; elle se recharge toujours toutes les trente secondes et reprend la rotation là où elle en était. Une épreuve sans tableau — une phase suisse, par exemple — n’a pas d’arbre et la page reste celle d’avant.
Hors de l’interface, la sous-commande blunderdb tournament relit un tournoi
dirigé sans interface graphique : list, verify, standings, page
et export ; page --rencontre écrit la page murale d’un événement au lieu
de la page d’une seule épreuve. Voir Interface en ligne de commande (CLI).
Panneau Stats
Introduction
Le panneau Stats permet d’analyser son niveau de jeu et de suivre sa progression dans le temps à partir des positions importées dans la base de données. Il calcule et affiche les indicateurs PR (Performance Rating) et MWC cost (Match Winning Chance cost) pour l’ensemble des positions ou un sous-ensemble filtré.
Le panneau Stats est particulièrement utile pour :
situer son niveau par rapport aux bandes de niveau (Classe mondiale, Expert, Avancé…) grâce au PR global ;
suivre sa progression tournoi après tournoi ou match après match grâce aux graphiques de l’onglet Progression ;
identifier ses points faibles : onglet Erreurs pour voir la répartition entre coups joués et décisions de videau, et la distribution des magnitudes d’erreur ;
comparer les joueurs de la base entre eux, une ligne par joueur, grâce à l’onglet Joueurs — utile pour suivre une compétition entière ;
accéder directement aux positions concernées en cliquant sur n’importe quel indicateur (drill-down).
Ouverture du panneau
Pour ouvrir le panneau Stats :
Appuyer sur CTRL-D.
Saisir la commande
statsoustdans la ligne de commande.
Note
Le panneau se rafraîchit automatiquement à chaque modification du filtre. Il ne recalcule pas les statistiques lors d’un simple basculement PR ↔ MWC : les deux métriques sont calculées simultanément par le backend.
Barre de filtre
La barre de filtre, en haut du panneau, permet de restreindre le calcul à un sous-ensemble de positions.
Perspective joueur
La liste déroulante Joueur permet de filtrer les statistiques selon le joueur analysé. blunderDB sélectionne automatiquement le joueur dont le nom apparaît le plus souvent dans la base de données — modifiable à tout moment.
Astuce
Changer de joueur ne provoque pas de perte de données ; il suffit de re-sélectionner le joueur précédent dans la liste.
Filtres disponibles
Tournoi(s) — restriction à un ou plusieurs tournois. Plusieurs tournois peuvent être sélectionnés simultanément.
Dates — plage temporelle (De … À). Si seule la date de début est renseignée, les positions plus récentes sont incluses.
Type de décision — Tous / Coups joués / Décisions de videau.
Longueur de match — restriction à des longueurs de match précises (1, 3, 5, 7, 9, 11, 13, 15, 21 points). Plusieurs longueurs peuvent être combinées.
Un bouton Reset remet tous les filtres à zéro (sauf le joueur auto-détecté).
Note
Les filtres sont persistés dans la configuration de blunderDB
(config.yaml) et sont restaurés à la prochaine ouverture.
Toggle PR / MWC
Le bouton PR / MWC en haut du panneau bascule la métrique affichée dans tous les onglets.
PR (Performance Rating)
L’erreur moyenne d’équité par décision comptée, multipliée par 500 comme le font eXtreme Gammon et GNUbg : un PR de 5,0 vaut 0,010 d’équité perdue par décision, soit 10 millipoints (mpt). La règle de comptage exacte — quelles décisions entrent au dénominateur, comment le score est converti — est celle de Annexe : Modèle de statistiques — alignement XG / gnuBG / blunderDB.
Les bandes de niveau que le panneau dessine derrière la courbe de progression sont un repère indicatif propre à blunderDB : aucune publication ne fait autorité sur ces seuils. La borne haute de chaque bande est exclue : un PR de 4 est Avancé, pas Expert.
Niveau
PR
Classe mondiale
< 2
Expert
2 – 4
Avancé
4 – 6
Intermédiaire
6 – 9
Occasionnel
9 – 12
Débutant
≥ 12
MWC cost (Match Winning Chance cost)
Probabilité cumulée de victoire de match perdue à cause des erreurs, sur l’ensemble du jeu de données filtré. Calculé à partir de la MET Kazaross-XG2 embarquée dans blunderDB.
Prudence
Le MWC cost n’est pas applicable aux positions money-game (sans enjeu de match). Ces positions sont exclues du calcul MWC. Les valeurs MWC dépendent de la MET utilisée ; elles ne sont pas directement comparables entre logiciels utilisant des METs différentes.
Le basculement PR ↔ MWC est instantané : aucun recalcul backend n’est effectué.
Le rapport HTML
Le bouton Rapport HTML de l’en-tête du panneau produit un document autonome : un seul fichier, sans image externe, sans feuille de style distante, sans script. Les diagrammes y sont des SVG en ligne, dessinés par le même rendu que le plateau à l’écran, avec votre palette. Il s’ouvre dans n’importe quel navigateur, s’envoie par courriel, et s’imprime en PDF par le navigateur lui-même — ce qui évite d’embarquer un générateur de PDF pour produire ce que tout le monde a déjà.
Il contient les indicateurs du périmètre courant (positions, matchs, décisions comptées, PR global, pions et videau), puis les dix décisions les plus coûteuses, chacune avec son diagramme, son coût, le match d’où elle vient et le meilleur coup lorsqu’une analyse le donne.
Le rapport porte le filtre courant du panneau Stats. Un rapport qui ne dit pas son périmètre est un rapport dont les chiffres ne veulent rien dire : réglez le filtre — un tournoi, une plage de dates, un joueur — avant de le produire.
Onglet Dashboard
L’onglet Dashboard donne une vue synthétique des indicateurs clés.
L’onglet Dashboard : PR global, PR pions, PR videau.
Cartes de niveau
Trois cartes affichent le PR (ou MWC) pour :
PR Global — toutes les décisions (coups + videau) ;
PR Coup — coups joués seulement ;
PR Cube — décisions de videau seulement.
Cliquer sur une carte charge dans le panneau d’analyse les positions du sous-ensemble correspondant (drill-down).
Note
Le nombre total de décisions est affiché en bas de chaque carte au survol.
PR glissant sur N dernières décisions
Une ligne de valeurs PR (ou MWC) calculées sur les N dernières décisions (N = 5, 10, 50, 100, 250, 500, 1000) permet de mesurer la tendance récente. Les valeurs grisées correspondent à un N supérieur au nombre de décisions disponibles.
Cliquer sur une valeur charge les N dernières positions correspondantes.
Top blunders
La liste des 10 pires erreurs (ou MWC cost), triées par magnitude décroissante. Cliquer sur une ligne charge la position concernée dans le panneau d’analyse.
Onglet Progression
L’onglet Progression présente l’évolution du niveau dans le temps.
En tête de l’onglet, un objectif : « PR < 5 d’ici douze semaines ». Une cible, une échéance, et une tendance qui dit où l’on va — rien de plus. Un objectif qui se mettrait à noter, à féliciter ou à rappeler serait une autre fonctionnalité, et pas celle-ci.
Le bouton Proposer suggère une cible à partir du niveau actuel : la borne basse de la bande où vous êtes, c’est-à-dire l’entrée dans la bande suivante. Proposer « un peu mieux » ne s’ancrerait à rien ; proposer un palier en dit un — passer d’intermédiaire à avancé se voit et se raconte.
La tendance est un ajustement par les moindres carrés sur le PR de vos matchs, projeté à l’échéance. Elle refuse de se prononcer sous trois matchs : tracer une droite entre deux points serait une affirmation qu’on ne peut pas tenir. Et la phrase le dit à chaque fois — une tendance n’est pas une prédiction.
L’objectif est enregistré dans les métadonnées de la base, pas dans la
configuration : il porte sur cette bibliothèque-là, et suit donc le fichier
plutôt que la machine. Aucun changement de schéma : metadata est déjà une
table de clés et de valeurs, lisible par blunderdb info comme par le démon.
Courbe par tournoi
Un graphique en ligne affiche le PR (ou MWC) pour chaque tournoi (axe X : ordre des tournois, axe Y : valeur de la métrique). Des bandes de couleur matérialisent les seuils de niveau.
Cliquer sur un point du graphique ouvre un menu contextuel avec deux options :
Ouvrir le tournoi — ouvre le tournoi dans le panneau Tournois.
Ouvrir les positions — charge toutes les positions du tournoi dans le panneau d’analyse.
Scatter plot par match
Un nuage de points représente chaque match (axe X : date, axe Y : PR ou MWC). La taille du point est proportionnelle au nombre de décisions dans le match.
Cliquer sur un point ouvre un menu contextuel :
Ouvrir le match — ouvre le match dans le panneau des matchs.
Ouvrir les positions — charge toutes les positions du match dans le panneau d’analyse.
Onglet Erreurs
L’onglet Erreurs décompose les sources d’erreurs.
L’onglet Erreurs : répartition du PR par action de videau.
Erreurs récurrentes
En tête de l’onglet, un tableau regroupe les erreurs du filtre courant — donc celles d’un seul joueur quand un joueur est filtré — par plan de jeu et par thème, la plus coûteuse d’abord. Il répond à la question « où est-ce que je perds le plus ? » : par exemple, « tenue · trop de blots ».
Une erreur est une décision comptée dont le coût atteint le seuil Erreur de la bibliothèque.
Le plan de jeu est celui du joueur au trait, tel que l’onglet Ventilations le présente.
Le thème d’un coup de pions est celui que nomment les règles de la phrase d’explication du panneau Analyse : gammon sous-estimé, trop de blots, point non fait, trop passif. Celui d’une décision de videau est le sens de l’erreur, comme dans la direction des erreurs de videau ci-dessous : double manqué, double prématuré, passe à tort, prise à tort.
Une erreur qu’aucune règle ne nomme avec assurance n’est pas devinée : elle sort du classement et apparaît à part, sous le tableau, en une ligne par plan de jeu (« sans thème identifié : N erreurs, coût X »), cliquable elle aussi. Ce reste est souvent le plus lourd, car l’explication ne se prononce qu’à partir de 60 mp, au-dessus du seuil Erreur : classé avec les autres, il coifferait un tableau qui ne dirait rien.
Le coût est la part du PR du filtre que le groupe représente : la formule du PR appliquée aux erreurs du groupe, rapportée à toutes les décisions comptées. Les coûts des groupes ne dépassent donc jamais le PR.
Cliquer sur un groupe charge ses positions, de la plus coûteuse à la moins
coûteuse. Le thème est recalculé à chaque affichage, jamais enregistré :
comme le plan de jeu, c’est une étiquette dérivée, non modifiable. En ligne de
commande : blunderdb stats recurring (voir stats — Erreurs récurrentes).
Répartition par action de videau
Un diagramme en barres affiche le PR (ou MWC) pour chaque type de décision de videau : NoDouble, DoubleTake, DoublePass, TooGood. Chaque barre indique également le nombre de décisions et le taux de blunders en infobulle.
Cliquer sur une barre charge les positions correspondant à cette action de videau, uniquement celles avec une erreur (drill-down).
Direction des erreurs de videau
La répartition ci-dessus indique combien coûtent les décisions de videau ; ce tableau indique dans quel sens elles se trompent.
Une position de videau porte deux décisions prises par deux joueurs différents, présentées ici en deux lignes :
Offrir — le joueur qui tient le videau double ou ne double pas. Ses erreurs sont les doubles manqués (il fallait doubler) et les doubles prématurés (il ne fallait pas).
Répondre — le joueur à qui le videau est offert prend ou passe. Ses erreurs sont les passes à tort (une prise correcte a été passée) et les prises à tort (une passe correcte a été prise).
Les deux lignes restent séparées à dessein : un joueur peut parfaitement doubler tard et prendre large, et un indicateur unique appellerait cela « équilibré » en perdant les deux moitiés de l’information.
Chaque case affiche le nombre de décisions ; l’infobulle donne l’équité perdue cumulée. Cliquer sur une case charge les positions correspondantes. Une case à zéro n’est pas cliquable.
Note
Ce tableau compte des décisions, il ne porte pas de jugement. À partir de quel écart une tendance mérite d’être nommée dépend de l’effectif et d’un point de référence, qui ne sont pas des données du moteur.
Répartition Checker / Cube
Un diagramme comparatif place côte à côte le PR des coups joués et des décisions de videau. Cliquer sur une barre charge les positions du sous-ensemble avec erreur.
Histogramme des magnitudes d’erreur
Un histogramme distribue les erreurs selon leur magnitude en millipoints (mpt, tranches : 0–5, 5–10, 10–25, 25–50, 50–100, ≥ 100). Cliquer sur une barre charge les positions de la tranche.
Onglet Ventilations
L’onglet Ventilations découpe les mêmes décisions que les chiffres globaux selon quatre axes. Aucun d’eux ne redéfinit ce qui compte comme une décision : ce serait un second PR sous le même nom.
Par phase de partie — ouverture, milieu de partie, course, sortie des pions. C’est ce qui répond à « mon PR en course contre mon PR en contact ». L’étiquette est calculée depuis le plateau (voir Panneau Recherche) ; une base dont les phases n’ont jamais été calculées range tout sous Non classée, et
blunderdb repairla remplit.Par plan de jeu — course, blitz, tenue, backgame, amorce contre amorce… C’est la ventilation pour laquelle le classificateur existe : « où est-ce que je perds le plus ? », plan par plan. Même étiquette dérivée que la phase, mêmes réserves, et
blunderdb repairla remplit de la même façon.Par étiquette — les
#motécrits dans les commentaires. Une position peut en porter plusieurs : ces lignes ne s’additionnent pas au total, et le panneau le dit sous le tableau. Une étiquette qualifie, elle ne partitionne pas.Par score — l’écart au but des deux camps, lu du côté du joueur au trait, donc du côté de celui qui décide. La ligne Money est la partie d’argent. Une cellule de moins de dix décisions est grisée avec son effectif visible plutôt que cachée : trop peu pour être lue, mais l’omission reste vérifiable.
Note
La partie Crawford n’est pas distinguée : blunderDB n’enregistre pas cet indicateur sur une position. L’effet pratique est faible — une partie Crawford n’a aucune décision de videau — mais l’omission est réelle et vaut mieux d’être écrite que laissée à deviner.
Étude et jeu réel
La commande blunderdb list --type study --days 30 met côte à côte, plan de
jeu par plan de jeu, trois nombres : combien de positions distinctes ont
été révisées sur la période, quel était le PR avant elle, quel est le PR
depuis.
Trois nombres, et pas un quatrième. Il n’y a ni colonne de gain ni flèche, parce que rien ici ne contrôle quoi que ce soit : le joueur a pu rencontrer des adversaires plus forts, changer de format, ou simplement jouer plus de courses ce mois-ci. Le rapprochement est celui du lecteur ; une colonne qui annoncerait un effet affirmerait une causalité que ces données ne portent pas. Les nombres, eux, sont exacts.
Les révisions sont comptées en positions distinctes : une carte revue
quatre fois dans le mois est une position étudiée, et compter les répétitions
ferait passer un mois de bachotage pour un mois de couverture. Les décisions
du PR, elles, sont toutes comptées — chacune a été prise une fois. Un PR
appuyé sur moins de dix décisions s’affiche —, avec son effectif visible à
côté.
Onglet Joueurs
Les quatre onglets précédents décrivent un joueur ; l’onglet Joueurs les compare tous. Il affiche une ligne par joueur de la base, ce qui répond au besoin d’un organisateur suivant une compétition entière plutôt qu’un joueur en particulier.
L’onglet Joueurs : une ligne par joueur, triable par n’importe quelle colonne.
Colonnes, dans l’ordre :
Colonne |
Signification |
|---|---|
Joueur |
Le nom tel qu’il figure dans les matchs. Un joueur enregistré sous deux orthographes apparaît donc sur deux lignes ; utilisez la fusion de joueurs pour les réunir. |
Matchs |
Nombre de matchs disputés dans la période retenue. |
V–D |
Victoires et défaites. Un match inachevé (journal tronqué, abandon) ne compte ni l’une ni l’autre : V + D peut donc être inférieur au nombre de matchs. |
Décisions |
Nombre de décisions comptées — le dénominateur du PR. C’est la colonne qui dit ce que valent les taux voisins : un PR calculé sur douze décisions ne signifie rien. |
PR |
Performance Rating global. |
PR pions, PR videau |
Le PR ventilé par type de décision. |
Snowie |
Snowie Error Rate (voir Annexe : Modèle de statistiques — alignement XG / gnuBG / blunderDB). |
Blunders |
Nombre d’erreurs atteignant le seuil de blunder de la bibliothèque (0,100 EMG par défaut). |
Chance |
Chance moyenne par lancer, en millipoints (mpt), signée : positive si les dés ont été favorables. |
Utilisation :
Trier — cliquez sur un en-tête de colonne. Le tableau s’ouvre trié par PR croissant, meilleur joueur en tête. Les joueurs dont rien n’a été mesuré restent en bas quel que soit le sens du tri : un zéro faute de données n’est pas une performance parfaite.
Ouvrir le détail d’un joueur — cliquez sur une ligne. Le joueur est sélectionné dans la barre de filtres et l’affichage bascule sur l’onglet Dashboard.
Restreindre la période — les filtres de dates, de tournois et de longueur de match s’appliquent normalement, ce qui permet de borner le tableau aux dates d’une compétition.
Comparer deux joueurs — cochez la case de la première colonne sur deux lignes. Un bloc apparaît au-dessus du tableau et met leurs indicateurs face à face ; cocher un troisième joueur remplace le plus ancien des deux. La case ne sélectionne pas la ligne : cocher compare, cliquer ouvre le détail.
Dans ce bloc, seuls les taux reçoivent un verdict, et le meilleur des deux est mis en gras. Trois indicateurs n’en reçoivent jamais, et il vaut de dire pourquoi. La chance n’est pas une qualité : un joueur plus chanceux n’est pas meilleur. Les matchs, le bilan et les décisions situent ce que les taux valent, mais les mettre en compétition ferait gagner celui qui a simplement joué davantage. Le nombre de blunders ne se compare pas brut — douze sur mille décisions valent mieux que dix sur cent —, aussi le bloc ajoute-t-il une ligne Blunders / 100 déc. qui, elle, se compare, et laisse le compte à côté comme contexte.
Une égalité n’est pas une victoire : elle n’est mise en gras d’aucun côté. Un taux qui n’a rien derrière lui s’affiche « — » et ne départage rien.
Note
Dans cet onglet, la liste Joueur et le choix du type de décision sont désactivés : le tableau montre tous les joueurs, et il ventile déjà les décisions de pions et de videau en colonnes distinctes.
Important
Un tiret (« — ») signale une valeur jamais mesurée, à ne pas confondre
avec zéro. C’est notamment le cas de la colonne Chance pour tout match
importé avant la version 2.15.0 du schéma : la chance n’était alors pas
conservée, et rien ne permet de la reconstituer après coup. Réimporter le
fichier source ne suffit pas : l’import y reconnaît un doublon et n’en reprend
que les marques. Il faut supprimer le match, puis le réimporter. Les formats
qui ne la transportent pas (BGF, Jellyfish .mat) n’en fourniront jamais.
Règle d’agrégation
Important
Le PR d’un tournoi (ou d’un sous-ensemble quelconque) est calculé par la règle somme/somme — jamais comme moyenne des PR individuels des matchs.
Formule :
Exemple : un joueur dispute deux matchs dans un tournoi —
Match A : 10 décisions, 0,100 d’équité perdue → PR = 5,0
Match B : 90 décisions, 0,540 d’équité perdue → PR = 3,0
Moyenne naïve des PR : (5,0 + 3,0) / 2 = 4,0 (incorrect)
Règle somme/somme : 500 × 0,640 / (10 + 90) = 3,2 (correct)
La règle somme/somme est la seule qui résiste à la variation de longueur des matchs (un match en 21 points pèse plus qu’un match en 1 point).
MWC : limitations
Le MWC cost est calculé à partir de la MET Kazaross-XG2, table de référence de facto dans le backgammon compétitif. Les résultats ne sont pas directement comparables avec des logiciels utilisant d’autres METs. C’est la même table, lue par le même point d’entrée, que celle dont l’évaluateur embarqué se sert pour ses décisions de videau au score : les statistiques et le moteur ne peuvent pas diverger là-dessus. Elle donne ses valeurs propres jusqu’à 25 points à faire de chaque côté ; au-delà, elle est prolongée par une table de Zadeh calculée comme celle de GNUbg, jusqu’à 64.
Les positions money-game (sans score de match) sont exclues du calcul MWC. Si votre base de données contient beaucoup de positions money-game, le MWC cost peut être sous-estimé ou indisponible.
Le MWC cost est cumulatif sur l’ensemble du jeu de données filtré — pas un indicateur par décision. Il mesure l’impact total de vos erreurs sur vos chances de victoire.
Panneau Eval
Le panneau Eval (CTRL-E) évalue en direct la position posée sur le
plateau, quelle qu’elle soit ; sur une position de bearoff il se spécialise et
calcule en plus l’EPC (Effective Pip Count). Il est activé en appuyant sur
CTRL-E, en cliquant sur l’onglet Eval dans le panneau inférieur, ou en
exécutant la commande eval ; epc, son ancien nom, l’ouvre aussi. Le
panneau s’est appelé EPC, puis Bearoff, avant de devenir Eval — c’est
donc ici qu’il faut chercher ce qu’une version antérieure appelait le panneau
Bearoff, le nom ne désignant plus que l’onglet de configuration des tables de
sortie.
Le panneau montre toujours la seule décision que la position posée sur le plateau appelle — jamais deux à la fois — et les faits qui vont avec. Chaque quantité se lit dans l’axe qui lui convient plutôt que dans un axe unique imposé : la probabilité de gain, de gammon, de backgammon et l’équité cubeless de chaque joueur, calculées avant le jet, se lisent par joueur (bas, haut, puis Δ), à gauche de la décision de videau, quand aucun dé n’est posé. Les faits et la décision restent côte à côte : la décision de videau ne passe jamais sous les chiffres qui la justifient, quelles que soient la langue de l’interface et la position sur le plateau. Dès que des dés sont posés, ces mêmes valeurs avant le jet changent d’axe : elles se lisent au trait, en tête de la liste des coups candidats, sous forme d’une ligne italique avant le jet — pas un coup candidat de plus, un repère contre lequel lire chaque coup. L’écart entre cette ligne et un coup contient la chance du jet, jamais le mérite du coup, et elle ne porte donc aucune colonne d’erreur. Sur une position de bearoff pur, un second tableau, toujours par joueur et toujours présent, dés posés ou non, porte l’EPC, le pip count, le wastage, le nombre moyen de lancers et l’écart type ; ces cinq colonnes ne migrent jamais. Les deux tableaux sont empilés et partagent la même grille de colonnes : mêmes bords, mêmes repères de colonne, une seule colonne de pastilles — ils se lisent comme un seul objet à deux étages. Le bouton Ajouter à la base, le badge de régime, l’attribution du moteur (la profondeur de la dernière évaluation y figure aussi) et la case Défi forment une bande à part, alignée à droite au-dessus des tableaux.
Seule la liste des coups candidats défile — la ligne avant le jet, elle aussi, reste épinglée au-dessus d’elle ; le reste du panneau (faits, badge, décision de videau) reste toujours visible, sans réglage particulier de la taille du panneau.
Le tableau de faits et la décision sont calculés par gammonNet, embarqué, sans XG ni gnubg. Le calcul suit la position sans jamais figer l’interface : une profondeur 0-ply s’affiche immédiatement à chaque geste, puis, après une demi-seconde d’immobilité, une évaluation plus profonde (2 plis par défaut, réglable dans l’onglet gammonNet de la configuration) la remplace en arrière-plan — tout nouveau geste annule ce calcul de fond. La profondeur affichée dans la bande de badges, ou au sein du badge de régime sur une position de course, est toujours celle qui a effectivement produit le chiffre montré, jamais celle demandée ; elle ne se répète pas sur chaque ligne, puisqu’une évaluation en direct partage la même profondeur pour tous les coups. L’équité des coups candidats et de la décision de videau suit le score de la position : en money game elle est exprimée en points, à un score de match en équité normalisée — la même échelle que XG et GNU Backgammon, où gagner la valeur du videau courant vaut +1 et la perdre −1 — jamais mélangées dans un même tableau. L’en-tête de la colonne le dit explicitement plutôt que de laisser deviner l’échelle : « Équité (money) » en money game, « Équité (match) » à un score de match. Elle tient compte du videau vivant : la recherche valorise chaque position finale par le modèle de videau (Janowski, efficacité mesurée) dans l’état du videau de la position, comme le font XG et GNU Backgammon en évaluation cubeful. C’est ce qui rend visibles au score les effets gammon-go et gammon-save — à 4-away/2-away, le joueur mené joue 8/2 6/2 sur un 6-4 d’ouverture parce que son double précoce donnera au gammon la valeur du match, ce qu’une évaluation sans videau ne peut pas voir. La ligne avant le jet, elle, reste une équité cubeless : c’est un fait de la position, pas une décision. L’évaluation n’est jamais enregistrée : c’est un calcul, pas une analyse. Cliquer un coup candidat l’affiche sur le plateau sous forme de flèches, exactement comme dans le panneau Analyse. Le bouton ? discret, dans la bande de badges, mène au dépôt du moteur gammonNet ; l’attribution complète (réseau Strehl, configuration gammonNet) figure dans les Remerciements de l’aide.
Le bouton Ajouter à la base, en tête de la bande de badges, enregistre
dans la base la position posée sur le plateau ; CTRL-S, la commande w
et le bouton Enregistrer la position de la barre d’outils font de même.
Seule la position est écrite, jamais l’évaluation affichée ; si l’analyse
automatique gammonNet est activée, son lot démarre ensuite, comme après un
import. La barre d’état annonce le numéro de la position, y compris quand
elle figurait déjà dans la base : elle y est alors marquée comme importée
seule, et le filtre Importée seule (s i) la retrouve. Le panneau reste ouvert sur le même plateau, qui reste un plateau
brouillon : on peut déplacer un pion et ajouter la variante, et quitter le
panneau ramène à ce qu’on étudiait. Le bouton est désactivé tant qu’aucune
base n’est ouverte, ou tant que la position ne peut pas être enregistrée
(par exemple la position de départ du panneau, dont le joueur du haut a
sorti tous ses pions) ; son infobulle en donne la raison.
L’utilisateur édite la position des pions sur l’ensemble du plateau, exactement comme en mode édition : clic gauche place un pion du joueur du bas, clic droit un pion du joueur du haut. Le second tableau, celui de la course, n’apparaît que lorsque la position obtenue est un bearoff pur (tous les pions des deux joueurs dans leur jan) ; sur toute autre position, seul le tableau des quatre colonnes communes (gain, gammon, backgammon, cubeless) répond, et la décision porte sur les pions ou sur un videau générique selon que des dés sont posés.
Dans chaque tableau de faits, une ligne par joueur — repérée par sa pastille de couleur, le joueur noir étant toujours en bas. Le premier porte, tant qu’aucun dé n’est posé, le gain, le gammon, le backgammon (probabilités, sans le signe %) et l’équité cubeless du joueur ; le second, sur une position de bearoff et dés posés ou non, l’EPC, le pip count, le wastage (différence entre l’EPC et le pip count), le nombre moyen de lancers et l’écart type. Lorsque les deux joueurs ont des valeurs à comparer, une ligne Δ donne les différences signées (bas − haut : négatif quand le joueur noir est en avance). Hors position de course, poser des dés fait donc disparaître les tableaux de faits eux-mêmes : les quatre colonnes qu’ils portaient viennent de changer d’axe, au trait, en tête de la liste des coups.
La décision de videau a toujours la même forme, quelle que soit l’origine des chiffres — table exacte, régime évalué ou évaluation gammonNet ordinaire : une ligne par option, dans l’ordre pas de double, double/prend, double/passe, avec son équité dans le référentiel de la position et son écart à la meilleure option. L’ordre ne change jamais, contrairement à la liste des coups : les trois options portent un nom, c’est donc le nom qu’on lit, pas le rang. La meilleure se reconnaît à sa mise en valeur et à sa cellule d’écart laissée vide. Lorsque le videau a déjà été retourné, les options se lisent pas de redouble, redouble/prend, redouble/passe.
Une dernière ligne donne le verdict. Il prend quatre valeurs : pas de double, double, prend, double, passe et trop bon pour doubler, cette dernière lorsque jouer la position rapporte davantage que d’encaisser le point : doubler serait alors une erreur pour la raison inverse de celle du simple pas de double. C’est aussi le seul endroit où le panneau dit qu’il n’y a pas de verdict, plutôt que de laisser croire à un calcul en cours :
pas de décision — le régime n’y a pas droit ; le verdict de videau n’est jamais estimé (voir le badge estimé) ;
non évaluable à ce score — le moteur refuse la position, typiquement un score hors de l’horizon de la table d’équité de match, c’est-à-dire un camp à plus de 64 points à faire ;
videau adverse et videau mort (Crawford) — le videau ne peut pas être retourné. Les équités restent affichées, à titre indicatif, mais aucune option ne porte d’écart : une erreur, c’est ce que coûte un choix, et il n’y a pas de choix.
En money game, les règles Jacoby et Beaver actives sur la position apparaissent sous le tableau de videau, en petits badges à côté du verdict qu’elles changent : le verdict pas de double d’une position sous la règle Jacoby n’est pas le même calcul que sans elle, et rien d’autre à l’écran ne le disait.
Un troisième badge, Videau max, apparaît lorsque l’identifiant d’origine plafonne le videau — au score comme en money game. Celui-là ne décrit pas le calcul affiché au-dessus : l’évaluateur intégré ne modélise pas de plafond, et le verdict est donc celui d’un videau libre. C’est justement pourquoi le badge est là : un videau plafonné est la seule raison visible pour laquelle blunderDB et eXtreme Gammon peuvent annoncer deux verdicts différents sur la même position.
Le badge de régime, la profondeur d’évaluation, le lien vers le moteur et la case Défi forment une bande à part, alignée à droite au-dessus des tableaux.
Le joueur au trait et la position du videau s’éditent directement sur le plateau, comme en mode édition : cliquer le rectangle bearoff/score d’un joueur lui donne le trait ; cliquer le videau fait tourner centré → possédé bas → possédé haut (clic droit en sens inverse). La valeur du videau reste épinglée — en money game les équités sont exprimées en unités du videau courant, seul son propriétaire compte. L’analyse est recalculée aussitôt. En régime estimé, le badge lui-même est cliquable et ouvre directement l’onglet Bearoff de la configuration ; son infobulle explique pourquoi (verdict de videau non estimable, ADR-0009) et comment étendre le domaine exact.
Le score s’édite lui aussi directement sur le plateau, comme en mode édition : clic gauche sur le rectangle score d’un joueur décrémente son nombre de points à faire, clic droit l’incrémente. Sortir du score money (-1, -1) en éditant un seul camp aligne automatiquement l’autre camp sur la même valeur plutôt que de laisser un score incohérent. Sur une position de bearoff en régime exact, passer d’un score money à un score de match laisse la probabilité de gain telle quelle (une lecture en base, valable quel que soit le référentiel) mais bascule l’équité et le verdict de videau affichés vers ceux du régime évalué — la table exacte étant money par construction, elle ne sait pas répondre à la question posée au score. Le badge devient alors composite (« exact (gain) · évalué (videau) ») pour le dire explicitement.
Les dés s’éditent enfin de la même façon, et ce sont eux qui décident de la question posée : des dés posés font une décision de pions (la liste des coups candidats), pas de dés une décision de videau. Clic gauche sur un dé fait monter sa valeur (6 revient à 1), clic droit la fait descendre (1 revient à 6) ; cliquer un dé sur un plateau qui n’en a pas en pose deux d’un coup — un seul dé ne serait ni une décision de pions ni une décision de videau. Cliquer le rectangle d’un joueur retire les dés pour poser une question de videau, et le clic suivant sur un dé les remet tels qu’ils étaient.
RETOUR ARRIERE, ou un double-clic en dehors du plateau, efface la position : plateau vide, score money (-1, -1), pas de dés posés — des valeurs propres au panneau Eval, différentes de celles utilisées en mode édition (7 partout, dés 3-1), pour rester cohérentes avec ce que le panneau affiche par défaut.
Matrice du videau
Une décision de videau n’est pas une propriété du damier. Les mêmes pions, le même compte de pips, se doublent à 2-away/4-away et ne se doublent pas à 4-away/2-away ; un joueur qui a appris la réponse money n’a appris qu’une case d’une grille. Le panneau Eval montre la case que la position porte ; la matrice du videau montre la grille entière.
La commande cm l’ouvre sur la position affichée. Chaque case donne le
verdict à un score : la ligne est le nombre de points qu’il reste à faire au
joueur au trait, la colonne celui qu’il reste à faire à son adversaire. Les
quatre verdicts s’écrivent PD (pas de double), DP (double, prend), DR
(double, refuse) et TB (trop bon) ; une case que le moteur refuse porte un
point d’interrogation et dit pourquoi au survol, qui donne aussi les trois
équités de la case. Trois longueurs de match sont proposées : 5, 7 et 9
points.
La case du score que la position porte réellement est encadrée, et ses deux en-têtes de ligne et de colonne soulignés : la lecture part de là, « ma case, et autour d’elle ». Elle l’est dès que les deux scores away de la position tiennent dans la grille affichée ; changer de longueur la déplace ou la retire. Une position money, la partie Crawford, ou un away au-delà de la grille n’en désignent aucune : il n’y a pas de case à montrer, et en montrer une approchante serait faux.
Le score de la position est remplacé par celui de chaque case ; son videau, lui, est conservé. La grille répond à « à quel score retournerais-je ce videau », pas à ce que ferait une position centrée. Elle est post-Crawford d’un bout à l’autre : pendant la partie Crawford le videau n’est pas en jeu, et une colonne de « vous ne pouvez pas doubler » ne dirait rien de la position.
Chaque case est une recherche à part entière. Le moteur tient compte du score — il ne joue pas la même partie à 2-away qu’à 7-away —, donc une seule recherche relue à travers des équités de match différentes serait fausse exactement là où le score compte. La grille arrive d’abord en 0-ply, puis se recalcule à la profondeur d’affichage configurée une fois la fenêtre au repos : la même escalade que le reste du panneau, pour une grille de 9 points qui coûte environ une seconde et demie.
La même grille se calcule hors de l’interface, avec la commande cubematrix de la ligne de commande.
Amener une position dans le panneau Eval
Le panneau s’ouvre par défaut sur une position de bearoff, mais l’étude part le plus souvent d’une position déjà en main. Deux gestes l’y amènent :
Clic droit sur le plateau, dans un panneau d’analyse ou pendant la navigation d’un match, puis Évaluer cette position : le panneau Eval s’ouvre directement sur cette position, telle qu’elle est affichée. Le menu contextuel n’apparaît pas dans le panneau Eval ni dans le panneau Recherche, où le bouton droit sert déjà à poser les pions de l’autre couleur.
CTRL-C puis CTRL-V : copier la position depuis le panneau d’analyse, puis la coller une fois dans le panneau Eval. Le collage accepte aussi un identifiant venu d’ailleurs — un XGID (eXtreme Gammon, GNU Backgammon, une autre instance de blunderDB) ou un OGID (OpenGammon) : il suffit qu’il soit dans le presse-papier.
La commande
import XGID=…(ouimport OGID=…) pour le cas où l’identifiant n’est pas dans le presse-papier mais dans un message, sur un forum lu dans un terminal, ou produit par un script. C’est le même verbe qu”importtout court : sans argument il ouvre un sélecteur de fichiers, avec un argument il lit l’identifiant. Le chemin est ensuite identique à celui du collage — même lecture, même déduplication, même ouverture de la position importée.
Un OGID ne porte qu’une position : ni évaluation, ni commentaire. La position arrive donc sans analyse, exactement comme un XGID nu, et l’évaluateur intégré peut la combler ensuite.
Dans un OGID, la partie Crawford se lit au C qui suit la longueur du match
(7C) : sans lui, un joueur à un point du but est après la Crawford.
Le plateau du panneau Eval est un brouillon : la position y arrive sans son identifiant de base, de sorte qu’aucune modification faite ici ne peut réécrire l’enregistrement dont elle provient. Toutes les éditions habituelles du plateau y restent disponibles (pions, videau, dés, score), et l’évaluation suit chaque modification.
Dans l’autre sens, CTRL-C copie le plateau du panneau Eval dans le presse-papier, avec un XGID recalculé à partir des pions posés — donc collable directement dans eXtreme Gammon ou dans une autre instance de blunderDB. Seule la position voyage : l’évaluation affichée par le panneau n’est pas un enregistrement de la base et n’accompagne pas la copie.
En quittant le panneau Eval, la position consultée auparavant est restaurée : le brouillon n’est jamais enregistré tout seul.
Lorsque la position est un bearoff pur (tous les pions des deux joueurs dans leur jan) et qu’aucun dé n’est posé, la décision de videau affiche, pour le joueur au trait :
en régime exact : les équités money (cubeless, sans double, double/prend, double/passe) et le verdict de videau money (pas de double, double/prend, double/passe ou trop bon pour doubler) — hors score de match, voir plus haut pour le cas du score,
en régime évalué : les mêmes équités et le même verdict à quatre valeurs, mais joués par gammonNet (recherche + modèle de videau Janowski) plutôt que lus dans une table — disponibles même au score de match, ce que le régime estimé n’a jamais pu offrir ;
en régime estimé : le verdict de videau n’est alors volontairement pas affiché — seule la probabilité de gain, dans le tableau de faits, accompagnée de sa marge d’erreur, reste disponible.
Dès que des dés sont posés sur une position de course, cette décision de videau avant le jet disparaît — le plateau demande alors une décision de pions, pas de videau — mais la probabilité de gain, elle, reste un fait de la position, pas une décision : elle rejoint la ligne avant le jet en tête de la liste des coups, à côté de l’EPC qui, lui, reste affiché juste à gauche.
Un badge indique le régime : exact (valeur lue dans une base de données two-sided), évalué · <profondeur> (joué par gammonNet — la profondeur affichée est celle qui a effectivement produit le chiffre montré), estimé ± marge, ou, au score de match dans le domaine exact, exact (gain) · évalué (videau) — voir plus haut. Le régime exact l’emporte partout où il est disponible ; sinon le régime évalué s’affiche dès qu’il a fini de calculer, remplaçant en place le régime estimé montré pendant l’attente. Voir Méthodologie et hypothèses du panneau Eval pour la définition précise des trois régimes et de leurs hypothèses.
Élargir le domaine exact. La table calculée au premier lancement couvre 6 pions par joueur. Deux moyens d’aller au-delà, dans l’onglet Bearoff de la configuration :
calculer une table deux faces plus large — jusqu’à TS-06-15 si la machine a la mémoire pour. L’onglet annonce la taille, la mémoire et le temps sur cette machine avant de commencer, et le calcul se met en pause et se reprend. Un calcul annulé laisse un fichier
.partqui n’est jamais lu comme une table ;indiquer un fichier
.bdtwo-sided de gnubg quelconque. La base au domaine le plus large l’emporte automatiquement.
Le plateau du panneau est un brouillon, et il est retenu. Quitter le panneau Eval puis y revenir retrouve la position sur laquelle on l’a laissé, et non le plateau de sortie par défaut : ce dernier n’est servi qu’à la première ouverture de la session. Envoyer une position de la base vers le panneau l’emporte sur ce souvenir, et RETOUR ARRIERE rend le plateau par défaut à tout moment. Rien n’est enregistré dans la base au passage — le brouillon n’a pas d’identité de position, et son évaluation est recalculée à l’arrivée plutôt que transportée.
Mode défi. La case Défi, dans la bande de badges, active un mode entraînement : à chaque modification de la position, les valeurs de trois zones sont masquées (remplacées par « ··· ») ; un clic sur une zone révèle cette zone seulement. Sans dés, ce sont la ligne du joueur du bas, la ligne du joueur du haut et la décision de videau — la ligne Δ n’apparaît qu’une fois les deux lignes joueurs révélées. Le bloc de décision garde alors ses trois lignes : ce sont ses valeurs, son verdict et la mise en valeur de la meilleure option qui disparaissent, faute de quoi l’exercice se résoudrait en cherchant la ligne en gras. Dés posés sur une position de course, la ligne EPC de chaque joueur se masque comme avant, mais la troisième zone couvre alors la ligne avant le jet et la liste des coups ensemble : la liste étant classée du meilleur coup au pire, la révéler partiellement en donnerait déjà la réponse. Dés posés hors position de course, cette même zone unique couvre à elle seule tout ce que le panneau affiche. On peut ainsi s’entraîner à estimer l’EPC de chaque camp, puis à se prononcer sur le videau ou sur le coup à jouer, avant de vérifier. Le réglage est mémorisé.
Pour fermer le panneau Eval, appuyer sur CTRL-E ou basculer sur un autre onglet.
Méthodologie et hypothèses du panneau Eval
Chaque valeur affichée par le panneau repose sur des hypothèses précises, énoncées ici exhaustivement.
Domaine. La zone course — probabilité de gain et verdict de videau — ne traite que le bearoff pur : tous les pions restants des deux joueurs dans leur jan intérieur. La position est évaluée avant le lancer ; les dés éventuellement posés sont ignorés.
Les blocs EPC, eux, vont plus loin : un camp obtient son EPC dès que son pion le plus éloigné tient dans la table une face chargée. Avec la table par défaut (six points) c’est l’ancienne règle du jan ; avec une table à huit points, calculée depuis l’onglet Bearoff, un camp dont un pion est sur la 8 est traité comme les autres. Rien n’est extrapolé : un pion un point trop loin n’a simplement pas d’EPC, exactement comme un pion sur la 7 n’en avait pas avant. Quand la table qui a répondu n’est pas celle à six points, son nom apparaît dans le coin du bloc course (« OS-08 ») — sans lui, on lirait « six » par défaut et on croirait le camp entièrement rentré.
Blocs EPC (toujours exacts). L’EPC, le nombre moyen de lancers et l’écart type proviennent de la distribution exacte du nombre de lancers pour sortir tous les pions, lue dans la base one-sided de GNUbg (6 à 10 points, 15 pions, calculée sur la machine). EPC = lancers moyens × 49/6 (49/6 ≈ 8,167 est la moyenne exacte de pips par lancer, doubles comptés quatre fois) ; wastage = EPC − pip count. L’unique idéalisation est le jeu one-sided optimal : chaque joueur minimise ses propres lancers en ignorant l’adversaire — c’est la définition standard de l’EPC.
Probabilité de gain, régime exact. Lecture directe dans la base two-sided disponible la plus large (TS-06-06 calculée au premier lancement, fichier externe, ou TS-06-11 calculée depuis l’onglet Bearoff). Ces bases résultent d’une analyse rétrograde complète sous jeu two-sided optimal des deux camps : aucune hypothèse supplémentaire, erreur limitée à la quantification (< 0,002 %).
Probabilité de gain, régime estimé. Hors du domaine de la base : la probabilité est obtenue en convoluant les deux distributions one-sided (le joueur au trait gagne si son nombre de lancers est inférieur ou égal à celui de l’adversaire), puis en appliquant une correction polynomiale figée, calibrée hors ligne contre la base TS-06-11. Trois hypothèses :
indépendance des deux processus de sortie — structurelle en course, sans contact il n’y a aucune interaction ;
jeu one-sided optimal des deux camps — c’est l’approximation : en réalité le joueur mené dévie pour jouer la variance et le meneur pour la sécurité. L’effet mesuré est un biais antisymétrique (la convolution exagère l’avance du meneur) que la correction absorbe statistiquement ;
la correction a été calibrée et validée sur le domaine de l’oracle (jusqu’à 11 pions par joueur). Erreur résiduelle mesurée : écart type 0,05 %, 99e centile 0,17 %, maximum observé 0,9 % (en points de probabilité de gain). Au-delà de 11 pions par joueur, cette borne est extrapolée — la tendance est monotone mais aucun oracle ne la certifie.
Équités et verdict de videau (régime exact seulement). Les équités affichées sont celles du money game, sans Jacoby, dans le référentiel de la littérature du bearoff. Dans le domaine ≤ 11 pions par joueur, les gammons sont impossibles (chaque camp a déjà sorti au moins 4 pions) : ce n’est pas une approximation. Le verdict (pas de double / double, prend / double, passe) est reconstruit exactement des équités stockées, selon la règle de GNUbg, validée trait pour trait contre son analyse.
Note
Les équités cubeful supposent un jeu de videau optimal des deux camps jusqu’au bout : les recubes futurs sont intégralement valorisés (analyse rétrograde complète). Dans les courses très volatiles de fin de partie, la cascade de recubes mange presque tout l’avantage du camp au trait — les équités « sans double » et « double/prend » peuvent alors être proches de zéro là où un moteur comme XG, dont le modèle de videau ne valorise pas cette cascade, affiche des valeurs proches du dead cube (par exemple 2 pions sur le point 3 contre 2 pions sur le point 2 : 62 % de gain, D/T exact +0,006 contre +0,475 chez XG). La décision affichée, elle, coïncide avec celle des moteurs.
Probabilité de gain et verdict, régime évalué. Hors du domaine exact, la probabilité de gain provient de la sortie brute de gammonNet (recherche 0- ou 2-plis selon le geste, jamais lue dans une table), et le verdict d’un « Decide » Janowski appliqué à cette sortie — la recherche joue la trajectoire au lieu d’en résumer un instantané, ce qui est précisément ce que le régime estimé ne pouvait pas faire (voir plus bas) et permet, seul des trois régimes avec l’exact, un verdict au score de match.
Ce régime a été mesuré, pas seulement supposé, contre la table two-sided
intégrée (TestEvalMeasure, 4000 décisions money échantillonnées,
paramètres canoniques 2-plis k=12) : accord de verdict money 93,4 %
(3735/4000), ventilé par distance au point de prise de gammonNet — 61,1 % à
moins de 1 % du point de prise (la zone la plus sensible à un pile ou face),
88,3 % entre 1 et 5 %, 91,5 % entre 5 et 10 %, 94,0 % entre 10 et 20 %,
94,4 % au-delà. Écart de probabilité de gain : moyenne 0,85 %, médiane
0,44 %, 95e centile 3,21 %, maximum 8,30 %. Écart d’équité cubeful : moyenne
0,039, médiane 0,018, 95e centile 0,151, maximum 0,406. La forme est celle
attendue : l’essentiel du désaccord se concentre exactement au point de
prise, où deux méthodes légitimement différentes divergent le plus sur une
décision serrée — pas une erreur diffuse qui coûterait de l’équité partout.
Cette mesure porte sur des décisions money, en course. Le verdict au score de match — que ce régime est seul à savoir rendre — et les positions de contact n’ont pas de mesure publiée : ce qui précède ne se transporte pas à ces cas.
Pourquoi pas plus profond que 2 plis ? Parce que la mesure dit que cela ne rapporte rien. Une décision de pions coûte 99 ms à 2 plis et 8,4 s à 3 plis sur la même machine — 85 fois plus. Sur quarante décisions réelles rejouées aux deux profondeurs, la recherche plus profonde a changé d’avis deux fois, et les deux fois le gain qu’elle s’attribuait à elle-même valait au plus 0,0005 d’équité normalisée : deux ordres de grandeur sous 0,020, le seuil à partir duquel eXtreme Gammon parle d’erreur. Par décision, tous cas confondus, le gain est de 0,0000.
Le réglage n’est donc pas proposé. Il ne s’agit pas de dire que 3 plis ne vaut
rien en général, mais que sur ce réseau, avec le filtre canonique, il ne paie
pas l’attente de quelqu’un devant un panneau. La mesure est reproductible
(TestThreePlyMeasure) et la conclusion se rejugera si le réseau change.
Pourquoi le verdict estimé n’existe-t-il pas ? Ce qui suit vise spécifiquement la méthode par convolution (régime estimé), pas le régime évalué ci-dessus : l’équité cubeful est un problème de trajectoire (quand doubler), qu’aucun résumé statistique de la position ne capture — le meilleur modèle statique mesuré laisse une erreur résiduelle (écart type 0,016 d’équité, maximum 0,20) qui suffit à inverser toutes les décisions serrées. De même, la conversion du verdict au score de match via une table d’équités de match a été mesurée insuffisante (12 % de désaccords avec l’analyse 2-ply de GNUbg, avec de vraies bourdes). Un verdict faux affiché avec aplomb étant pire que pas de verdict, la convolution n’a jamais eu le droit d’afficher de verdict — c’est une recherche qui joue la trajectoire, pas un résumé statistique, qui comble ce trou.
Note
Les bases de bearoff sont des tables mathématiques immuables.
blunderDB les calcule lui-même, à l’identique de l’outil makebearoff de
GNUbg — octet pour octet — dans l’onglet Bearoff de la configuration ou
avec blunderdb bearoff generate.
Panneau Anki
Le panneau Anki (CTRL-K) permet d’étudier par répétition espacée, en utilisant l’algorithme FSRS. Une carte pose une question : le plus souvent une position, tirée d’une collection ou d’une recherche ; ce peut aussi être un score.
Création de paquets : Cliquez sur New Deck pour créer un paquet à partir d’une collection ou des résultats de recherche courants. Les paquets basés sur une recherche se synchronisent automatiquement à l’activation de l’onglet Anki.
Un paquet de fiches de score. La troisième source, Fiches de score, ne demande rien d’autre qu’un nom : blunderDB remplit le paquet avec les 36 scores non ordonnés de 2 à 9 away, et la carte d’un score est la fiche que l”exercice Scores affiche — points de prise et valeurs de gammon, les deux faces. Ce paquet n’existe que si vous le créez : 36 cartes dues le premier jour sont une dette de révision, et elle se contracte volontairement. Le bouton de synchronisation le régénère.
Les deux endroits ne font pas le même travail. L’exercice Scores fait retrouver ces nombres sous la pendule et mesure la vitesse ; le paquet les fait tenir dans le temps et n’en mesure rien. Les deux histoires restent séparées : le journal de l’Entraînement ignore les révisions Anki, et les statistiques d’Anki ignorent les sessions d’Entraînement.
Révision : Sélectionnez un paquet puis cliquez sur Study (ou double-cliquez sur un paquet) pour commencer la révision des cartes dues. Une carte de position affiche la position sur le plateau ; une carte de score annonce le score et laisse le plateau tel qu’il est. Évaluez votre rappel avec les touches 1 (À revoir), 2 (Difficile), 3 (Bien), ou 4 (Facile). Appuyez sur Esc pour arrêter et revenir à la liste des paquets.
Les décisions de videau font deux cartes, enchaînées. Une décision de videau est deux questions — « double ? », puis « prend ? » — et blunderDB les enregistre depuis toujours comme deux positions. Un paquet qui n’en sélectionne qu’une moitié reçoit l’autre : la décision est complétée, pas augmentée. Et quand les deux sont dues, la seconde vient immédiatement après la première.
Chacune garde sa propre note et son propre calendrier : ce ne sont pas deux temps d’une même carte, ce sont deux cartes. L’enchaînement n’avance aucune échéance — il ordonne les cartes déjà dues, rien de plus. Les deux naissant ensemble, elles sont dues ensemble la première fois, et c’est là qu’il sert.
Afficher la réponse : La carte pose une question — quel coup jouer, quelle action de videau, ou quels nombres porte un score. Réfléchissez, puis appuyez sur ESPACE (ou cliquez sur la zone masquée) pour dévoiler la réponse : l’analyse enregistrée de la position, telle que l’onglet Analyse la présente, ou la fiche du score, entière. Sur une fiche il n’y a rien à cocher : Anki planifie une mémoire, il ne mesure pas un calcul — c’est l’Entraînement qui compte les fautes. Elle apparaît sous les boutons d’évaluation, qui restent à leur place et à portée. Cliquer sur un coup de la liste le montre sur le plateau.
Rien ne vous oblige à dévoiler la réponse pour évaluer : si vous êtes sûr de vous, les touches 1 à 4 restent actives. La réponse se remasque à la carte suivante, mais pas si vous changez simplement d’onglet — allez consulter le panneau Éval ou le commentaire de la position, elle vous attendra au retour.
Une position dépourvue d’analyse enregistrée l’indique directement, sans zone masquée.
Limiter la séance. Par défaut, une séance de révision va jusqu’au bout des cartes dues. Vous pouvez la borner à un nombre de cartes, par paquet, dans les Paramètres : cochez Limiter la séance et indiquez combien de cartes une séance doit servir. Quand la limite est atteinte, la séance s’arrête en le disant — le message distingue « limite atteinte, tant de cartes encore dues » d’une file réellement épuisée. Pour continuer malgré tout, l’entraînement libre est là : il sert d’autres positions sans rien modifier au planning.
Une limite de 0 ne sert aucune carte : c’est un état à part entière, utile pour geler un paquet le temps de préparer un tournoi, et ce n’est pas la même chose que « pas de limite ». Le bouton Study est alors inactif.
La limite porte sur la séance, pas sur la journée. Un paquet blunderDB est bâti sur une collection ou une recherche : c’est un corpus fini, introduit en quelques séances, dont le volume quotidien est déjà borné par sa taille. Un plafond par jour n’y mordrait jamais, ou bien créerait un retard sur un paquet qui tenait en une séance.
Entraînement libre (cram) : Le bouton Cram, à côté de Study, lance une session d’entraînement libre : des positions aléatoires du paquet vous sont présentées sans tenir compte de l’échéancier FSRS. Ce mode ne modifie jamais le planning de révision espacée — idéal pour s’échauffer avant un tournoi ou réviser intensément un paquet thématique sans perturber son ordonnancement. Une pastille Cram remplace l’état de la carte et un bouton Suivant (touches 1 à 4) fait défiler les positions. Esc revient à la liste sans enregistrer de session interrompue.
Écarter une carte, sans la noter. Pendant une révision, un clic droit sur l’en-tête de la carte ouvre trois gestes qui la sortent de la séance sans rien dire au planificateur :
Suspendre — la carte garde son échéancier et ne remonte plus jamais tant qu’elle est suspendue. C’est la manière de mettre de côté une carte fausse, ou pas encore utile, sans perdre l’historique qui y est attaché.
Enterrer — la carte disparaît jusqu’au lendemain. Contrairement à la suspension, cela ne dit rien de sa valeur : c’est pour celle que l’on vient de voir ailleurs, ou que l’on préfère ne pas croiser deux fois dans la soirée.
Retirer — la carte quitte le paquet, après confirmation. La position, elle, reste dans la base : un paquet est une liste d’étude sur la bibliothèque, jamais une copie de celle-ci.
Aucun de ces trois gestes n’enregistre de note : une carte écartée n’est pas une carte répondue, et elle ne compte pas dans le décompte de la séance.
Journal des révisions. Dans les Paramètres d’un paquet, le bouton Journal des révisions montre ce que le planificateur a été dit — date, sujet (le numéro de la position, ou le score), note, état, intervalle accordé — par opposition à ce qu’il prévoit. C’est le seul endroit où une note entrée par erreur se voit. Elle ne s’y corrige pas : l’échéancier reste hors de portée, et cette règle est précisément ce qui rend le journal utile — on ne peut pas réécrire le passé, mais on peut savoir ce qu’il a été.
Arrêt/Reprise : Vous pouvez interrompre une session de révision à tout moment avec Esc. Le bouton change en Resume et affiche votre progression. Cliquez dessus pour reprendre là où vous vous êtes arrêté.
Gestion des paquets : Utilisez les boutons d’action pour renommer, synchroniser, réinitialiser ou supprimer des paquets (confirmation demandée pour ces deux dernières actions). Les paramètres FSRS (rétention cible, intervalle maximum, aléa) peuvent être configurés par paquet dans les Paramètres (icône engrenage).
Rétention : la cible et la mesure. La rétention cible est votre choix sur le compromis entre charge de travail et qualité du rappel : plus elle est haute, plus les intervalles raccourcissent et plus vous révisez. En regard, les Paramètres affichent la rétention mesurée sur vos propres révisions — une information, jamais un pilotage : blunderDB ne modifie pas votre cible pour poursuivre votre taux de réussite. Sous une vingtaine de révisions, la mesure n’est pas affichée : elle se lirait comme un fait alors qu’elle n’est que du bruit.
Changer la rétention n’est pas rétroactif : chaque carte adopte le nouveau rythme à sa prochaine révision, et les échéances déjà fixées ne bougent pas. L’effet est donc progressif, et invisible le jour même.
L”intervalle maximum borne l’espacement. Un paquet créé récemment démarre à un an : une position que l’algorithme reporterait de plusieurs années a quitté le paquet sans que vous l’ayez décidé, et votre propre jeu change plus vite que cela. Les paquets plus anciens conservent la valeur qu’ils avaient.
Panneau Entraînement
Le panneau Anki fait réviser ce qui se retient ; le panneau
Entraînement fait travailler ce qui se calcule, sous la pendule. Il
s’ouvre par CTRL-J, par le bouton de la barre d’outils placé juste après
« Position aléatoire », ou par la commande train. La fiche de score relève
des deux : elle se calcule ici et se retient dans un
paquet de fiches de score.
Au repos, le panneau montre le lanceur et le bilan des sessions passées.
Le lanceur
Trois choix, puis « Démarrer » :
l”exercice — Scores, Pions, Bearoff, Évaluation ou Décision ;
la source de la question, quand l’exercice en a plusieurs — Vivier (des formes canoniques de l’exercice), Plateau (la position telle qu’elle est) ou Base (une position de la liste parcourue) ;
la limite par question — aucune, 15, 30 ou 60 secondes.
La source choisie est mémorisée pour chaque exercice, d’une session à l’autre.
train scores, train pips, train bearoff, train evaluation et
train decision ouvrent le panneau et démarrent directement ; train tp et train takepoint
sont des synonymes de train scores, train epc de train bearoff,
train quiz de train decision.
Les cinq exercices
Scores tire au sort l’un des 36 scores non ordonnés de 2 à 9 away et affiche une fiche de score : deux colonnes — Vous et L’adversaire — et sept lignes — le point de prise au videau 2 puis au videau 4, chacun en course longue et au dernier lancer, puis la valeur du gammon aux videaux 1, 2 et 4.
Chaque colonne ne porte que les cases que les tables de référence — celles
qu’affichent les commandes tp2_live, tp2_last, tp4_live,
tp4_last, gv1, gv2 et gv4 — définissent pour sa face : trois
nombres à 2a-2a,
quatorze au plus, et une seule colonne à score égal. Une ligne qu’aucune des
deux faces ne définit ne figure pas sur la fiche — il n’y a donc aucune case
« sans objet » à deviner. Les deux faces sont là parce qu’une décision de
videau au score a besoin des deux : le point de prise corrigé combine les
valeurs de gammon des deux joueurs, et c’est le point de prise de l’adversaire
qui dit si votre double passe.
Pions demande le compte de pions des deux camps. Le pipcount du
plateau est masqué tant que la question est ouverte ; « Révéler » l’affiche —
même si vous aviez masqué le pipcount avec p, sans quoi la réponse
resterait invisible et l’exercice invérifiable. C’est un masque et non un
réglage : votre choix n’est pas modifié, et il reprend la main dès la question
suivante. La source Plateau
pose une question sur la position affichée, et une seule ; la source Base
tire une nouvelle position à chaque question et l’amène sur le plateau.
Bearoff demande l”EPC des deux camps — le compte de pions effectif, celui qui ajoute au pipcount le gaspillage des pions qui sortent en trop. C’est le domaine où le moteur est exact, et celui où l’EPC se distingue vraiment du compte de pions.
Chaque question est engendrée : le moteur part d’une graine et joue quelques lancers, et c’est l’instantané qui vous est posé. Un placement au hasard n’aurait pas les trous, les piles basses et les asymétries d’un vrai bearoff. La graine vient du Vivier (une position de bear-in, puis zéro à dix plis), du Plateau (la position affichée, puis un à quatre plis — jamais zéro, puisque vous venez de la voir) ou de la Base (une position de la liste parcourue, telle quelle : elle est déjà réelle).
Le domaine de l’exercice : les deux camps entièrement dans leur jan, de 4 à 15 pions par camp et le reste sorti, videau au centre, en partie d’argent. Une graine qui n’y entre pas est refusée en le disant, et rien ne démarre — aucune adaptation silencieuse : jouer jusqu’à ce que le contact se rompe vous donnerait une position que vous n’avez pas choisie. Un plateau vide fait exception : la question vient alors du vivier, et le panneau dit pourquoi.
L’exercice a besoin de la table de bearoff à un camp ; tant qu’elle s’engendre en arrière-plan (voir Configuration), il le dit plutôt que de poser une question sans réponse.
Évaluation demande ce que vaut une position : les chances de gain du joueur au trait, en pourcentage, et l”action de videau — Pas de double, Double, prend ou Double, passe. Ce sont les deux nombres que montre le panneau Eval, demandés avant d’être montrés. Le domaine est toute position : une course comme une position de contact, en partie d’argent.
Comme pour Bearoff, la question est engendrée : la graine vient du Vivier (une position où le contact vient de se rompre, puis zéro à dix plis joués par le moteur), du Plateau (la position affichée, puis un à quatre plis ; la question se pose en partie d’argent, videau au centre, quel que soit le score de la graine) ou de la Base (une position de la liste parcourue, telle quelle). Une position de la base ne convient que si elle est une décision de videau en partie d’argent — sans dés, le videau au centre ou au joueur au trait — ; le tirage passe sinon à la suivante, et quand aucune ne convient, l’exercice le dit. Un plateau qui n’est pas une position de partie — pas quinze pions par camp, ou une partie finie — est refusé en le disant ; un plateau vide fait venir la question du vivier.
La vérité est celle du moteur : la base de bearoff à deux camps quand la position y figure, gammonNet à sa profondeur canonique partout ailleurs, et le panneau dit laquelle a répondu. Rien n’est estimé : une position que le moteur n’évalue pas n’est pas posée.
Décision pose une décision déjà analysée : une position de la liste parcourue — sa seule source —, avec la décision qu’elle porte, coup de pions ou action de videau, et c’est l’analyse enregistrée qui juge. Une position sans analyse ne pose pas de question, et une position posée ne revient pas dans la session ; quand la liste est épuisée, le panneau le dit. Sans base ouverte, ou sans position analysée dans la liste, l’exercice refuse en le disant et rien ne démarre.
Tant qu’une question d”Évaluation ou de Décision attend sa réponse, le panneau Analyse est masqué : il porte la réponse.
Répondre
Le mode de réponse est une propriété de l’exercice, jamais un réglage : ce qui se compte ou se récite se déclare, ce qui s”estime se saisit — parce que là, la taille de l’erreur est la leçon.
Scores et Pions se déclarent : vous calculez de tête, vous cliquez « Révéler », et la vérité s’affiche. Chaque nombre est alors juste par défaut — vous cliquez celui que vous avez raté pour le marquer faute (Tab puis Espace fait le même geste au clavier), et un second clic annule la marque. Rien ne se tape : un compte de pions ou une case de table est juste ou faux, et l’écrire n’apprend rien de plus que de le lire.
Bearoff se saisit : vous écrivez les deux EPC, « Valider » les juge à un demi-pion près — la granularité à laquelle l’EPC change une décision de course — et la vérité s’affiche à côté de ce que vous avez écrit. C’est l’application qui juge, il n’y a rien à cocher. L’écart est enregistré avec son signe : surestimer n’est pas sous-estimer, et c’est le bilan qui en fait une moyenne.
Évaluation mêle les deux gestes dans une même question. Les chances de gain se saisissent et se jugent à cinq points près, écart signé compris ; l’action de videau se choisit — le clic retient le bouton sans rien juger, et « Valider » juge les deux en une fois. Le videau n’a pas de tolérance : seul le bouton que le verdict du moteur rend juste est juste, et une position trop bonne pour doubler se répond Pas de double. Entrée dans le champ mène à l’action de videau tant qu’elle n’est pas choisie, puis valide. Après la réponse, le panneau affiche la vérité — le verdict en quatre issues —, sa source, et l”EPC des deux camps quand la position en a un exact ; l’EPC n’est jamais demandé ici, il a son propre exercice. Le journal compte les deux nombres à part : on peut bien estimer une position et mal lire son videau.
Décision se choisit. Sur une décision de pions, jouez le coup sur le
damier : cliquez le point de départ puis la destination, ou glissez le pion,
autant de fois qu’il y a de dés. Le damier n’offre que ce qui est jouable — un
clic qu’aucun coup légal n’autorise ne déplace rien. Dans le panneau,
« Annuler le pas » revient d’un dé, « Recommencer » remet la position telle que
la question la pose (un double-clic hors du damier fait de même), et
« Valider », actif une fois le coup complet, le fait juger. Le champ de
notation accepte aussi le coup tapé (13/7 8/7, la notation de la
transcription) : les pas se posent sur le damier à chaque frappe, un champ
rougi dit qu’un pas n’est pas jouable, et ENTRÉE valide le coup complet. Le
panneau ayant le focus, RETOUR ARRIÈRE défait un pas, ÉCHAP recommence le coup et
ENTRÉE le valide. Sur une décision de
videau, cliquez Pas de double, Double, prend ou Double, passe : le clic
est la réponse.
La correction distingue trois issues, et les confondre mentirait. Un coup illégal n’est pas un coup mal choisi — c’est une faute de règle. Un coup légal que le moteur n’a pas classé n’est pas une erreur de jugement : il n’a simplement pas de prix, et il ne coûte rien. Un coup classé coûte ce que l’analyse dit qu’il coûte, en millipoints. Seul un coup classé et sans coût est juste ; le meilleur coup s’affiche dans tous les cas.
Le chronomètre part à l’affichage de la question et s’arrête à « Révéler », à « Valider » ou au clic d’une action de videau de Décision ; la question suivante se prépare pendant que vous répondez, elle n’est donc jamais chronométrée avec la vôtre. Cocher ses fautes n’est pas chronométré non plus. Avec une limite, une question restée sans réponse à l’échéance se révèle seule et compte hors délai : tous ses nombres sont faux, et son temps n’entre pas dans la médiane — on ne mesure pas une réponse qui n’a pas été donnée. Une décision hors délai affiche le meilleur coup, et n’entre pas dans le PR de la session.
« Suivante » enregistre la question et en pose une autre. La session n’a pas de longueur fixée : elle dure jusqu’à « Terminer », qui l’écrit au journal, ou « Quitter », qui la jette. Tous les boutons sont dans le panneau ; le plateau montre la question et sa réponse, il ne porte aucune commande.
Tant qu’une question est posée sur le plateau, révélée ou non, les touches qui parcourent la liste ne la font pas défiler : la question garde le plateau jusqu’à « Suivante », « Terminer » ou « Quitter ».
Le journal et le bilan
Les sessions terminées sont conservées dans la base elle-même — elles suivent donc le fichier — et sans plafond. Au repos, le panneau affiche une ligne par exercice : le nombre de sessions, le taux de fautes, le temps médian et, à partir de dix sessions, la tendance, c’est-à-dire l’écart entre le taux de fautes des dix dernières sessions et celui de toutes — négatif, vous progressez.
Pour Décision, la ligne donne aussi le PR de la dernière session, calculé par la formule que les statistiques appliquent au jeu réel — 500 × erreur moyenne en équité normalisée, sur les décisions jugées. Un PR de 6 à l’entraînement et un PR de 6 en match mesurent la même chose sur la même échelle.
Cliquer le nom de l’exercice déplie le détail par type de nombre : « Point de prise 4 · dernier lancer, 6 / 9 ». C’est ce détail qui fait l’intérêt du journal, et il compte par type et non par face : la même case de la même table, vue d’un côté ou de l’autre, est une seule faiblesse.
Panneau Métadonnées
Le panneau Métadonnées affiche les informations générales de la base de
données courante : nom, description, nombre de positions, nombre de matchs et
de parties, version du schéma. Accessible via la commande meta.
Il affiche également, lorsqu’elle existe, l’origine de la base — voir Diffuser une base : origine et mot de passe. Une base ordinaire n’affiche pas cette section.
Diffuser une base : origine et mot de passe
Un enseignant qui distribue une base de positions dispose de deux mécanismes, indépendants l’un de l’autre, tous deux facultatifs et choisis au moment de l’export : marquer le fichier de son origine, et le protéger par un mot de passe.
Note
Aucun des deux ne suit ce que devient le fichier. blunderDB n’enregistre rien du côté de celui qui reçoit la base : ouvrir une base marquée est exactement comme ouvrir n’importe quelle autre, et rien nulle part ne consigne qui l’a ouverte, quand, ni d’où vient son contenu.
Marquer une base de son origine
La fenêtre d’export tient en un seul écran : le formulaire, puis une progression qui se superpose à lui le temps de l’écriture. Elle se ferme d’elle-même une fois terminée, et le résultat s’affiche dans la barre d’état.
Trois points méritent l’attention :
L’export porte sur les positions actuellement affichées, pas sur la base entière. Après une recherche, seuls les résultats partent — la fenêtre le rappelle en tête.
Une collection dont toutes les positions ne sont pas dans la sélection arrive tronquée. La liste affiche donc, pour chaque collection, la part couverte (« 12/40 ») et la signale en rouge lorsqu’elle est partielle.
Les tournois ne peuvent être exportés qu’avec les matchs : sans eux, le lien tournoi–match n’existe pas et le tournoi arriverait vide. La case est désactivée tant que « inclure les matchs » ne l’est pas.
Les champs Utilisateur, Description et Date décrivent le fichier produit ; ils sont préremplis depuis la base source. La case Mes filtres enregistrés est à part des autres : elle n’exporte pas du contenu mais vos propres recherches enregistrées, sans utilité dans la base de quelqu’un d’autre.
Cocher Marquer ce fichier de son origine fait apparaître deux champs :
Origine — ce qu’est ce fichier et d’où il vient, dans vos mots : « Cours de Jean Dupont — 12 mars 2026 ». Ce champ est obligatoire : tant qu’il est vide, le bouton d’export reste inactif.
Note, facultative — conditions d’utilisation, adresse de contact, une demande de ne pas rediffuser.
La marque est signée avec votre identité d’émetteur. Elle est donc inaltérable et infalsifiable : nul ne peut la modifier, ni en fabriquer une à votre nom. Elle n’est en revanche pas ineffaçable — le fichier distribué est une base SQLite ordinaire, et blunderDB est un logiciel libre. Elle n’empêche rien : elle dit d’où vient le fichier.
Identité d’émetteur
Les marques sont signées avec votre identité d’émetteur, créée toute seule
la première fois que vous marquez un fichier ; il n’y a rien à configurer. Elle
appartient à une personne et non à une base : tous vos fichiers portent la même
empreinte publique, de la forme A3F1-9C24-7B05-E1D8.
Vous pouvez communiquer cette empreinte à vos destinataires pour qu’ils
vérifient qu’un fichier vient bien de vous. L’identité se transporte d’un poste
à l’autre en un seul fichier (extension .bdbid), éventuellement protégé par
une phrase secrète. Ce fichier permet de signer en votre nom : ne le partagez
pas.
Dans les préférences (icône engrenage de la barre d’outils), l’onglet Identité d’émetteur affiche votre nom et votre empreinte, et propose Enregistrer l’identité…, Charger une identité… et Régénérer….
Avertissement
Régénérer ne révoque rien. Un filigrane embarque la clé publique qui l’a signé : il se vérifie donc pour toujours, tout seul. Si votre fichier d’identité a fuité, celui qui le détient pourra continuer à signer sous votre ancienne empreinte, et ces marques resteront valides.
Ce qui vous protège après une fuite n’est pas logiciel : c’est de publier votre nouvelle empreinte et de désavouer l’ancienne auprès de vos destinataires.
La régénération écrase la clé actuelle ; blunderDB propose de l’enregistrer avant de la remplacer.
Protéger une base par un mot de passe
Le mot de passe se saisit masqué, ici comme à l’ouverture d’un fichier protégé ; l’icône en forme d’œil l’affiche tant qu’on la maintient enfoncée, et le masque de nouveau dès qu’on relâche.
Cocher Protéger ce fichier par un mot de passe produit un fichier
d’extension .dbx — y compris si vous aviez choisi un nom en .db dans la
fenêtre d’enregistrement, celle-ci s’ouvrant avant que le mot de passe ne soit
demandé. Pour l’ouvrir, utilisez l’ouverture de base habituelle : la fenêtre de
sélection accepte aussi bien les .db que les .dbx. blunderDB demande
alors le mot de passe et installe une base ordinaire à côté ; ensuite plus rien
n’est demandé.
La fenêtre propose de supprimer le fichier protégé une fois ouvert : sans cela vous conservez le même contenu sous deux noms. La case n’est pas cochée par défaut — le fichier protégé reste le vôtre si vous comptez le transmettre — et la suppression n’a lieu qu’après une ouverture réussie.
Avertissement
Le mot de passe protège le transport du fichier, pas la base. Il empêche un tiers d’ouvrir un fichier qui traîne dans un dossier de téléchargement ou une pièce jointe transférée par erreur. Il ne protège pas de celui à qui vous avez donné le mot de passe.
Le mot de passe est vérifié à chaque ouverture, y compris lorsque le fichier a déjà été ouvert auparavant sur ce poste.
Techniquement, la base est chiffrée par AES-256 en mode GCM, avec une clé dérivée du mot de passe par Argon2id (64 Mio de mémoire, 3 passes, 4 fils), et un sel tiré au hasard propre à chaque fichier. Le mode GCM authentifie l’ensemble : un mot de passe erroné est détecté comme tel, et toute altération du fichier chiffré l’est également — on n’obtient jamais une base corrompue en silence.
L’en-tête du fichier protégé reste en clair : son origine demeure lisible sans le mot de passe.
Lire l’origine d’un fichier
Dans l’application, ouvrez le fichier et affichez le panneau Métadonnées
(commande meta). Une section Origine apparaît en tête du panneau, en
lecture seule, indiquant ce qui a été inscrit, par qui, quand, et l’état de la
signature :
« ✓ signature vérifiée — marquée par vous » : le fichier porte votre marque, intacte ;
« ✓ signature vérifiée » : la marque est intacte et vient d’une autre clé — comparez son empreinte à celle que le producteur vous a communiquée ;
« ⚠ signature invalide » : le document a été modifié ou contrefait.
Cette section n’apparaît pas sur une base ordinaire.
En ligne de commande, blunderdb info --db fichier.db affiche l’origine et
l’état de la signature, sans jamais écrire dans le fichier. La commande
fonctionne aussi sur un fichier protégé, sans le mot de passe. Voir
CLI_USAGE.md pour les options --watermark et --password de
export, ainsi que pour identity et open.
Publier une base pour d’autres
Une base marquée se distribue comme n’importe quel fichier — courriel, site personnel, clé USB. blunderDB ne fournit aucun service : ni dépôt, ni catalogue hébergé, ni compte. C’est une conséquence directe de sa conception : rien n’est jamais enregistré du côté de celui qui reçoit un fichier, et il n’y aurait donc rien à faire remonter à un service, même s’il en existait un.
Ce qui rend une base publiée utilisable par quelqu’un d’autre tient à quatre champs, tous déjà là :
Utilisateur — qui l’a constituée, sous le nom que vous voulez voir cité.
Description — ce que la base contient, en une phrase qui tienne dans une liste : « 240 décisions de videau au score, commentées, niveau intermédiaire ».
Origine (du filigrane) — ce qu’est ce fichier et pour qui il a été produit. C’est ce que le destinataire lit en premier dans le panneau Métadonnées.
Empreinte d’émetteur — publiez-la à côté du fichier, pas dedans : c’est en la comparant que le destinataire vérifie que le fichier vient de vous et non de quelqu’un qui a repris votre nom.
Une base publiée sans filigrane reste parfaitement utilisable ; elle est simplement anonyme, et le panneau Métadonnées n’affiche alors aucune section Origine.
Pour faire connaître une base, la catégorie Show and tell des discussions du dépôt sert d’annuaire : c’est une liste tenue par ceux qui publient, pas un service rendu par blunderDB. Y annoncer une base demande le lien, les quatre champs ci-dessus et l’empreinte.