Manual

Introducción

blunderDB es un programa para crear bases de datos de posiciones de backgammon. Su principal fortaleza es ofrecer un único lugar donde agregar las posiciones que un jugador ha encontrado (en línea, en torneos) y poder reestudiarlas filtrándolas según diversos filtros combinables de forma arbitraria. blunderDB también puede usarse para crear catálogos de posiciones de referencia.

Las posiciones se almacenan en una base de datos representada por un archivo .db. La aplicación de escritorio abre este archivo directamente, nunca una dirección de red: el modo servidor (Modo headless (servidor)) es otro modo del mismo binario, y se pasa de uno a otro exportando o migrando la base, no apuntando la aplicación hacia una URL.

Interacciones principales

Las principales interacciones posibles con blunderDB son:

  • añadir una nueva posición,

  • modificar una posición existente,

  • copiar la imagen del tablero al portapapeles (PNG) mediante CTRL-X, o con el análisis completo mediante CTRL-X CTRL-X,

  • eliminar una posición existente,

  • buscar una o varias posiciones,

  • importar partidas desde diferentes fuentes (XG, GNUbg, BGBlitz, Jellyfish), incluidos los comentarios de los ficheros XG,

  • navegar por las jugadas de una partida importada,

  • organizar las posiciones en colecciones,

  • organizar las partidas en torneos.

El usuario puede etiquetar libremente las posiciones mediante etiquetas y anotarlas con comentarios.

Descripción de la interfaz

La interfaz de blunderDB se compone, de arriba abajo, de:

  • [arriba] la barra de herramientas, que reúne todas las principales operaciones que pueden realizarse sobre la base de datos,

  • [en el centro] la zona de visualización principal, que permite mostrar o editar posiciones de backgammon,

  • [abajo] la barra de estado, que presenta diversa información sobre la base de datos o la posición actual, e integra la línea de comandos.

Pueden mostrarse paneles para:

  • mostrar los datos de análisis asociados a la posición actual procedentes de eXtreme Gammon (XG), GNUbg o BGBlitz,

  • mostrar, añadir o modificar comentarios,

  • buscar y filtrar posiciones según criterios combinables,

  • mostrar y gestionar las colecciones de posiciones (panel de colecciones),

  • mostrar la lista de partidas importadas y navegar por las jugadas de una partida (panel de partidas),

  • mostrar y gestionar los torneos (panel de torneos),

  • mostrar las estadísticas de rendimiento (panel Stats),

  • calcular el EPC (Effective Pip Count) de una posición de bearoff (panel Eval),

  • estudiar las posiciones mediante repetición espaciada (panel Anki),

  • ver los metadatos de la base de datos (panel Metadatos).

Pueden mostrarse ventanas modales para:

  • mostrar la ayuda de blunderDB,

  • mostrar el catálogo de visitas guiadas (ver Visitas guiadas y base de ejemplo),

  • configurar la exportación de la base de datos,

  • configurar blunderDB, en particular el idioma de la interfaz (véase Configuración).

La zona de visualización principal pone a disposición del usuario:

  • un tablero para mostrar o editar una posición de backgammon,

  • el nivel y el propietario del cubo,

  • el pip count de cada jugador,

  • la puntuación de cada jugador,

  • los dados a jugar. Si no se muestra ningún valor en los dados, la posición de los dados indica qué jugador tiene el turno y que la posición es una decisión de cubo. Cuando la decisión de cubo es una respuesta a un doblaje (aceptar/pasar), el cubo propuesto se muestra en el centro del tablero, con el valor ofrecido.

Un clic derecho en el tablero abre un menú contextual que ofrece: evaluar la posición mostrada en el panel Eval, evaluar su espejo, copiar la imagen del tablero con su análisis al portapapeles (el equivalente de CTRL-X CTRL-X, menos fácil de descubrir), guardar la imagen en un fichero en SVG o PNG, abrir una nueva vista sobre esta posición, y — si la posición ya viene de la base — añadirla a un mazo Anki (repetición espaciada) o clasificar sus posiciones vecinas (ver Panel de Búsqueda).

El portapapeles es el gesto corriente; guardar es la otra necesidad — la ilustración de un artículo, de un mensaje de foro, de una lección. El SVG se ofrece porque el tablero lo es: es la forma que sobrevive a una ampliación, la que se pone en un documento sin desenfocarla. El PNG deriva de él, igual que la copia al portapapeles: un solo renderizado, tres destinos, así que ninguno puede divergir de los demás. Este menú no aparece en el panel Eval ni en el panel Búsqueda, donde el botón derecho ya sirve para poner las fichas del otro color. Véase Llevar una posición al panel Eval para llevar una posición al panel Eval.

La barra de estado está estructurada de izquierda a derecha con la siguiente información:

  • la línea de comandos, accesible pulsando la tecla ESPACIO,

  • un mensaje informativo relacionado con una operación realizada por el usuario,

  • el índice de la posición actual, seguido del número de posiciones en la biblioteca actual (o la información de jugada/partida al navegar por un partido),

  • el contador de la biblioteca — «412 posiciones · 38 blunders · 5 partidos» — donde cada número abre lo que cuenta: las posiciones, la búsqueda E> preparada en la línea de comandos con el umbral de la biblioteca, o la lista de partidos. Una cifra que no se puede seguir es una decoración. El umbral de los blunders es el de la biblioteca, ajustado en la pestaña Biblioteca de la configuración y compartido con las estadísticas: dos umbrales harían decir dos cosas a la misma palabra. El contador promete exactamente lo que abre su enlace, incluso para una posición jugada de varias maneras, que vale su coste más elevado.

Nota

En el caso de posiciones resultantes de una búsqueda del usuario, el número de posiciones indicado en la barra de estado corresponde al número de posiciones filtradas.

La pestaña Anki lleva una insignia cuando hay tarjetas por repasar, en todos los mazos. Esa cifra es la razón de abrir la pestaña; no tiene nada que hacer detrás de ella. Cero no muestra nada: una insignia que dice «0» es ruido.

El comando log abre el registro de actividad: las últimas doscientas líneas del archivo de registro, un botón para copiarlas — lo necesario para adjuntar un informe a un aviso — y otro para abrir la carpeta que las contiene. El registro no se filtra ni se reformatea: un registro que se embellece es un registro que ya no se puede citar.

El comando grid abre la hoja de contactos: la lista recorrida — resultados de una búsqueda, biblioteca, colección — como una cuadrícula de minitableros, dibujados como el tablero, en páginas de veinticuatro. Se abre en la página de la posición actual, cuya miniatura aparece enmarcada; un clic o INTRO sobre una miniatura abre su posición en el tablero y cierra la hoja, y se recorre por completo con el teclado (véase Hoja de contactos). No se abre ni en modo edición ni en un match, que se recorre por sus jugadas.

En el historial de búsquedas del panel Búsqueda, cada token de un comando guardado se muestra como una etiqueta con nombre — Sin contacto, Error de jugada — en vez de un token pelado. El comando exacto queda en la ayuda emergente, porque es el que se relanza; y un token que blunderDB no reconoce se muestra tal cual en vez de traducido a lo más parecido.

Pestañas de vistas

Bajo la barra de herramientas, una barra de pestañas permite trabajar con varias vistas en paralelo. Cada vista es un espacio de trabajo independiente que conserva su propia lista de posiciones, el índice de la posición actual, la posición mostrada, el análisis y la jugada seleccionada, el panel activo, el comentario en curso, así como el contexto de navegación en una partida. Así es posible, por ejemplo, mantener una búsqueda abierta en una vista mientras se recorre una partida en otra.

  • Crear una vista: hacer clic en el botón + de la barra de pestañas o pulsar CTRL-T. La nueva vista comienza como una copia de la vista actual.

  • Cerrar una vista: hacer clic en la cruz de la pestaña o pulsar CTRL-W. La última vista no se puede cerrar.

  • Cambiar de vista: hacer clic en una pestaña, pulsar CTRL-PageUp / CTRL-PageDown (o MAJ-J / MAJ-K) para pasar a la vista anterior / siguiente, o CTRL-1 a CTRL-9 para ir directamente a la n-ésima vista.

  • Renombrar una vista: hacer doble clic en la pestaña, escribir el nuevo nombre y validar con INTRO.

Las vistas se guardan con el estado de sesión de la base de datos y se restauran al reabrirla.

Configuración

El botón de configuración (icono en forma de rueda dentada) situado en la barra de herramientas, a la izquierda del botón de ayuda, abre la ventana de configuración de blunderDB. Está organizada en siete pestañas:

  • Interfaz — idioma, escala de visualización, posición del panel;

  • Colores del tablero — los colores del tablero;

  • Biblioteca — lo que pertenece a la base de datos abierta: los umbrales de error y de blunder, la compactación y la reparación, descritos más abajo;

  • Bearoff — las tablas de bearoff utilizadas por el panel Eval;

  • gammonNet — los ajustes del evaluador integrado, descritos más abajo;

  • Carpeta vigilada — la importación automática de los partidos que llegan a una carpeta, descrita más abajo;

  • Identidad del emisor — la clave que firma tus marcas de origen, descrita en la sección Distribuir una base de datos: origen y contraseña.

La pestaña Interfaz empieza con un tema: seguir el sistema, claro, oscuro, contraste alto o imprimible. El tema ajusta los colores de la interfaz y propone una paleta de tablero — una interfaz oscura alrededor de un tablero claro no es un tema oscuro, es la mitad de uno, ya que el tablero ocupa la mayor parte de la ventana.

Usted conserva la última palabra, y el mecanismo lo garantiza en vez de prometerlo: la pestaña Colores sigue ajustando el tablero directamente, y un color elegido después del tema es suyo. Al arrancar solo se aplican los tokens de la interfaz, nunca la paleta del tablero — la que usted ha ajustado ya está cargada, y reescribirla en cada lanzamiento borraría su trabajo una sesión cada vez. Véase ADR-0038.

Seguir el sistema es el valor por defecto: obedece a la preferencia claro/oscuro del escritorio, incluso cuando cambia a mitad de sesión. Una herramienta no impone su claro o su oscuro a un escritorio que ya ha decidido.

La pestaña Interfaz permite también elegir el idioma entre inglés, francés, alemán, italiano, español, finés, japonés, griego y ruso. Toda la interfaz (barra de herramientas, paneles, mensajes, ayuda) se traduce al idioma seleccionado. La elección de idioma se guarda y se conserva de una sesión a otra.

La pestaña Biblioteca reúne lo que pertenece al archivo abierto y no a la máquina. Está vacía mientras no haya ninguna base de datos abierta, y lo dice.

Lleva en primer lugar los dos umbrales que deciden el vocabulario de toda la aplicación: una decisión es un error en cuanto su coste alcanza el umbral de error, y ese error es un blunder en cuanto alcanza el umbral de blunder. Todo blunder es un error, así que el primer umbral no puede superar al segundo, y blunderDB rechaza el par invertido. Los valores se introducen en equidad — «0,080» — la unidad de todas las tablas; la línea de comandos, por su parte, habla en milipuntos, de modo que el umbral 0,080 se escribe E>80 en una búsqueda.

Estos umbrales siguen al archivo, no al ordenador: la misma base de datos cuenta los mismos blunders dondequiera que se abra, blunderdb info los muestra, y blunderdb edit --error-threshold / --blunder-threshold los ajusta. No viajan en una exportación: un umbral es un hábito de lectura, no un hecho de las posiciones.

Se proponen tres preajustes con un solo clic, cada uno con el nombre del programa que trazó esa línea: blunderDB (0,050 / 0,100), XG (0,020 / 0,080) y gnubg (0,040 / 0,080). Por defecto, una biblioteca lee 0,050 y 0,100.

Lo que cambian, en pantalla: el número de blunders del contador de la barra de estado y la búsqueda que prepara su enlace, las columnas «Errores» y «Blunders» de las estadísticas y de la tabla de jugadores, las marcas de las jugadas en la ficha de un match (Panel de Partidas), y la lista de posiciones que blunderDB propone revisar después de una importación.

La misma pestaña ofrece también el botón Compactar la base, que recupera el espacio en disco dejado por las eliminaciones (partidas, torneos, purgas): la base de datos nunca se reduce por sí sola cuando se borran datos, hay que pedir explícitamente esa compactación. La operación puede tardar en una base grande y necesita, temporalmente, alrededor del doble de su tamaño en espacio libre (blunderDB se niega a arrancar en lugar de arriesgar una compactación interrumpida); por eso se pide confirmación antes de lanzarla. El resultado — el espacio ganado, en megabytes — se muestra después en la barra de estado. La misma operación está disponible en línea de comandos mediante blunderdb vacuum (véase Interfaz de línea de comandos (CLI)).

El botón Abrir la carpeta de registros, justo debajo, abre la carpeta que contiene el registro de la aplicación — útil para adjuntar detalles a un informe de error, sobre todo cuando blunderDB se ha iniciado desde un acceso directo o un doble clic, sin terminal asociada que muestre nada.

La casilla Buscar actualizaciones al iniciar, desactivada por defecto, consulta una vez por arranque la página de versiones del repositorio de GitHub y muestra en la barra de estado un mensaje si hay una versión más reciente — nunca una ventana que impida trabajar. Esta comprobación queda automáticamente desactivada en una instalación hecha mediante un gestor de paquetes (Flatpak, Homebrew, un paquete de la distribución…): entonces es ese canal el que gestiona las actualizaciones, no blunderDB.

Dos ajustes gobiernan la clasificación de las posiciones vecinas (token like, ver Panel de Búsqueda): el número de vecinas devueltas, y la distancia máxima más allá de la cual una posición deja de serlo. Esta distancia vale cero por defecto, es decir, ningún límite: la escala depende de la fase de la partida, y un valor elegido aquí se leería como una medida. El token like<12 impone la suya para una búsqueda, sin tocar el ajuste.

La pestaña Colores del tablero permite personalizar los colores del tablero. Cada elemento dispone de su propio selector de color: el fondo, el borde, las flechas claras y oscuras, las fichas del jugador 1 y del jugador 2, los dados, los puntos de los dados y el cubo de dobles. El botón Restablecer devuelve todos los colores predeterminados. Al igual que el idioma, los colores elegidos se conservan de una sesión a otra.

La pestaña Bearoff gestiona las tablas de bearoff del panel Eval (véase Panel Eval). No están ni incrustadas en el ejecutable ni se descargan: blunderDB las calcula en la máquina que las usa, y el resultado es idéntico byte a byte a lo que produce gnubg — la huella SHA-256 se verifica antes de aceptar una tabla.

Las dos tablas corrientes (TS-06-06 para el veredicto de cubo, OS-06 para el EPC) se calculan en el primer arranque, en segundo plano y sin preguntar: unos seis segundos en un núcleo, durante los cuales la aplicación se usa normalmente. El panel Eval solo lo menciona si se pone allí una posición que necesita una tabla que aún no está lista.

La pestaña muestra el dominio activo y su origen, el estado de la tabla de un lado que lee el EPC, la carpeta donde vive todo esto, y la lista de las tablas presentes con su tamaño y su veredicto. Cada fila se elimina individualmente, tras confirmación.

Verificada o sin verificar. Una tabla verificada tiene exactamente los bytes que gnubg produce para su dominio: su huella SHA-256 figura en blunderDB y se ha vuelto a encontrar. Las huellas registradas para las tablas one-sided (OS-06 a OS-10) son las que produce la herramienta makebearoff de GNUbg 1.08. Una tabla sin verificar está bien formada pero su dominio no tiene huella registrada — no se le reprocha nada, simplemente nadie la ha comparado con la referencia. Una tabla corrupta se contradice a sí misma y nunca se lee; se recalcula.

Calcular una tabla más amplia. El dominio se elige en una lista de dos familias, junto con el número de núcleos a dedicarle (por defecto todos menos uno, para que la máquina siga siendo utilizable):

  • cubo exacto (dos lados), de TS-06-06 a TS-06-15: amplía el dominio donde la probabilidad de victoria y el veredicto de cubo se leen en lugar de estimarse;

  • EPC fuera del cuadro (un lado), de OS-06 a OS-10: amplía la distancia a la que una ficha puede estar sin que el bloque EPC se calle. Este barrido solo lee posiciones más pequeñas que la que calcula, así que es secuencial por construcción y el número de núcleos no le sirve de nada — el selector lo dice atenuándose.

Antes de lanzar nada, la pestaña indica tres cifras para el dominio elegido: el tamaño en disco, la memoria necesaria durante el cálculo y el tiempo que debería tardar en esta máquina. Este último empieza como estimación y se vuelve medida: cada cálculo suficientemente amplio registra su propia velocidad y la conserva. Un dominio que la memoria disponible no permite se ofrece atenuado, con la razón — «harían falta 24 GB y quedan 12» es una respuesta, una fila ausente no lo sería.

Como orden de magnitud, en una máquina de dieciséis hilos: TS-06-09 pesa 191 MB y tarda una decena de segundos, TS-06-11 pesa 1,2 GB y unos minutos, TS-06-13 supera lo que la mayoría de las máquinas pueden mantener en memoria. Del lado de un lado, en un núcleo: OS-07 pesa 4,9 MB y tarda 17 s, OS-08 15 MB y 1 min 20, OS-10 117 MB y media hora.

Pausa y reanudación. Durante el cálculo, el progreso muestra el tiempo restante medido y dos botones distintos: Pausa y Cancelar. La pausa escribe el estado del cálculo junto a la tabla; relanzarlo continúa donde se detuvo en lugar de empezar de nuevo. Cancelar no guarda nada. Cerrar la ventana de configuración no interrumpe nada — el cálculo continúa en segundo plano.

Un cálculo en pausa se reencuentra en el siguiente arranque, con su nombre y su cifra («TS-06-09 interrumpida al 43 %»), con Reanudar y Eliminar. Nada se reinicia solo: es el usuario quien pidió la parada.

La pestaña permite por último apuntar a un archivo .bd de dos lados externo, por ejemplo una base producida por el propio gnubg: gana la tabla con el dominio más amplio.

La pestaña Biblioteca lleva por último Reparar los análisis: las columnas de análisis que consultan la búsqueda y las estadísticas son una proyección de los análisis almacenados, que permanecen intactos. Un defecto de proyección se repara, pues, sin volver a importar nada. Es explícito y nunca automático — reescribir las columnas de análisis de alguien por el solo motivo de que abra su base de datos no es algo que una herramienta deba hacer a sus espaldas. El mismo blunderdb repair está disponible en la línea de comandos.

La pestaña gammonNet ajusta el evaluador integrado (véase ADR-0011). En ella se regulan dos profundidades de búsqueda, con nombre propio y guardadas por separado — bajar una nunca modifica la otra:

  • Profundidad de visualización — la comodidad interactiva durante la edición del tablero; nunca se escribe en la base.

  • Profundidad de análisis — lo que el lote de análisis posterior a la importación escribe en el Análisis de una posición.

Ambas valen por defecto 2-ply, la configuración canónica. La pestaña ofrece también la poda (por defecto k=12) y el número de jugadas candidatas mostradas (por defecto 10), así como una casilla analizar automáticamente tras la importación que, una vez activada, comprueba después de cada importación si quedan posiciones sin ningún análisis (ni gammonNet, ni XG, ni GNUbg, ni BGBlitz — la regla es « una evaluación solo rellena un hueco », nunca un reemplazo) y, en su caso, lanza en segundo plano un análisis gammonNet a la profundidad de análisis configurada. Un botón Analizar ahora relanza manualmente la misma puesta al día, útil para una biblioteca creada antes de que existiera esta función.

Un segundo botón, Reanalizar posiciones obsoletas, cubre el caso contrario: una posición ya analizada por gammonNet, pero cuyo análisis almacenado fue escrito por una versión del motor más antigua que la que se ejecuta ahora, o a una profundidad distinta de la profundidad de análisis configurada arriba, se señala allí como obsoleta y se reevalúa. Una posición que además lleva un análisis de XG, GNUbg o BGBlitz nunca es tocada por este botón, sea cual sea su contenido de gammonNet — la protección de ADR-0013 sigue siendo incondicional. El número mostrado junto a cada botón (posiciones sin análisis, posiciones obsoletas) es puramente informativo; el lote recalcula su propia lista al arrancar.

Ambos lotes son acotados, visibles y cancelables, nunca un demonio silencioso: su progreso (posiciones analizadas / total) y un botón de cancelación aparecen en la barra de estado durante toda su duración, y desaparecen una vez terminados en favor de un mensaje que resume el resultado — cuántas posiciones fueron analizadas, cuántas fueron rechazadas (una posición que gammonNet declina evaluar, como una puntuación de partida fuera del alcance de su tabla, lo cual nunca es un fallo) y cuántas fallaron (reintentadas, sin cambios, en la siguiente ejecución). Cerrar la aplicación durante uno u otro no pierde nada: cada posición analizada se escribe sobre la marcha, y la siguiente ejecución retoma exactamente donde el análisis se había detenido, sin ningún registro que llevar.

Un partido importado sin análisis obtiene así un PR. Es el caso de un partido jugado en línea, o de un fichero Jellyfish .mat, que nadie ha pasado por XG: blunderDB conocía sus posiciones y las jugadas realizadas, pero ningún análisis decía cuánto valían. Una vez pasado el lote, la jugada realmente hecha se compara con la clasificación de gammonNet y la diferencia alimenta el PR, la tasa de error, las peores decisiones y todos los demás indicadores, exactamente como en un partido analizado por XG. La comparación no inventa nada: la jugada realizada viene de la tabla de jugadas del partido, escrita en la importación, llevara el fichero un análisis o no.

Una base analizada con una versión anterior a esta no necesita volver a evaluarse: blunderdb repair recalcula las columnas a partir de los análisis y las jugadas ya almacenados y devuelve su PR a esos partidos (véase repair).

Una reserva honesta: una posición se identifica por su estructura, de modo que una posición encontrada dos veces — bien jugada una vez, mal la otra — solo lleva una diferencia, la de su primera aparición registrada. No es propio de este cálculo: una biblioteca XG tiene exactamente la misma forma.

Carpeta vigilada

La pestaña Carpeta vigilada pide a blunderDB que mire una carpeta mientras se ejecuta e importe cada fichero de partido que aparezca en ella. Jugar una sesión en eXtreme Gammon, volver a blunderDB, y encontrar los partidos ya ahí.

Nada se adivina. Mientras no se designe una carpeta no hay vigilancia: blunderDB no empieza a leer un directorio porque haya supuesto dónde viven sus partidos. El botón Proponer mira los lugares habituales de esta máquina y solo propone uno si existe de verdad; si no, lo dice, y designar la carpeta le corresponde a usted.

Tres puntos merecen conocerse antes de marcar la casilla:

  • Solo se importan los ficheros que aparecen. Lo que la carpeta ya contiene cuando arranca la vigilancia se registra como conocido y se deja en paz: apuntar una vigilancia a cuatro años de partidos no debe importarlos todos. Para importar lo que hay, use la importación de carpeta, que existe para eso — y ambas se componen muy bien, la importación primero, la vigilancia después.

  • Un fichero se importa solo cuando su tamaño se ha estabilizado. Un partido que otro programa está escribiendo crece de un vistazo a otro; importarlo a medio escribir daría un error de análisis sobre el que nadie puede actuar. blunderDB espera, pues, a ver dos veces el mismo fichero sin cambios.

  • La importación es silenciosa. Estaba estudiando una posición cuando llegaron sus partidas: quitarle la pantalla sería el peor momento. El modo, la búsqueda activa, la pestaña y la posición mostrada no se mueven; la lista de posiciones no se recarga y muestra las partidas nuevas en la próxima recarga. La importación se hace sin ventana, y la barra de estado muestra un banner con el recuento de partidas importadas, omitidas (duplicados) y fallidas, con un botón que abre el informe completo si lo desea. Todo lo demás es idéntico a una importación manual: los mismos duplicados detectados, el mismo lote de importación, el mismo análisis automático si está activado.

El intervalo por defecto es de diez segundos; el mínimo es de dos. La carpeta no se recorre recursivamente: una carpeta vigilada es el sitio donde una herramienta deposita sus partidos, no un árbol que explorar. Un recurso de red desmontado no detiene la vigilancia ni hace que su contenido pase por nuevo a su regreso.

La misma vigilancia existe en línea de comandos, con blunderdb import --type batch --dir <carpeta> --watch (véase Interfaz de línea de comandos (CLI)): es la forma que puede usar un servidor, una tarea programada o un script.

La ventana de configuración también incluye ajustes de visualización de la interfaz. Un control deslizante de escala de la interfaz permite agrandar o reducir todos los elementos, lo que resulta útil en pantallas de alta densidad o para mejorar la legibilidad. Un menú posición de los paneles determina la ubicación de los paneles (búsqueda, partidas, análisis) con respecto al tablero: abajo, al lado o automática (en este caso el lado se elige en las pantallas anchas para aprovechar mejor el espacio disponible). Como los demás ajustes, estas opciones se conservan de una sesión a otra.

Visitas guiadas y base de ejemplo

Para facilitar la toma de contacto, blunderDB ofrece visitas guiadas de la interfaz. El catálogo de visitas se abre desde la barra de herramientas o con el comando tour (alias tutorial). Hay siete visitas disponibles: una visita general de la interfaz, y visitas dedicadas a la búsqueda de posiciones, a la revisión de partidas, a la revisión de torneos, al panel Eval, al repaso Anki y a las estadísticas. Cada visita resalta los elementos correspondientes de la interfaz, paso a paso, abre de paso el panel del que habla, y puede repetirse en cualquier momento. En el primer arranque, la visita general se ofrece automáticamente.

El comando demo carga una base de ejemplo que permite descubrir las funcionalidades de la herramienta sin importar las propias partidas: tres partidas (dos de ellas agrupadas en un torneo) analizadas por eXtreme Gammon, BGBlitz y gammonNet, tres colecciones temáticas, comentarios etiquetados (#blunder, #cube) y un mazo Anki con su registro de repasos. Los jugadores, el torneo y el lugar son ficticios. Las visitas guiadas se apoyan en esta base cuando no hay ninguna base abierta.

Edición de posiciones

Pulsar la tecla TAB abre el panel de búsqueda y permite editar una posición en el tablero para añadirla a la base de datos o para definir una estructura de posición que buscar. La distribución de las fichas, el cubo, la puntuación y el turno pueden modificarse con el ratón (véase Editar una posición).

Truco

Consulte Atajos de teclado para ver los atajos disponibles.

La línea de comandos

La línea de comandos, integrada en la barra de estado, permite realizar todas las funcionalidades de blunderDB disponibles en la interfaz gráfica: operaciones generales sobre la base de datos, navegación por las posiciones, visualización del análisis o de los comentarios, búsqueda de posiciones según filtros… Tras una primera toma de contacto con la interfaz, se recomienda utilizar progresivamente la línea de comandos, que permite un uso potente y fluido de blunderDB, especialmente para las funcionalidades de búsqueda de posiciones.

Para abrir la línea de comandos, pulse la tecla ESPACIO. Para enviar una consulta y cerrar la línea de comandos, pulse la tecla INTRO.

blunderDB ejecuta las consultas enviadas por el usuario siempre que sean válidas y modifica inmediatamente el estado de la base de datos si procede. No se requieren acciones de guardado explícitas por parte del usuario.

Truco

Consulte la lista de comandos para ver la lista de comandos disponibles en la línea de comandos.

La paleta de comandos

La paleta de comandos (CTRL-MAYÚS-P) encuentra por un nombre aproximado lo que ya no se sabe dónde buscar: un comando de la línea de comandos, una pestaña, un filtro de la biblioteca o un match. Las letras tecleadas deben aparecer en orden, no necesariamente juntas, sin distinguir mayúsculas ni acentos: «mtzcb» encuentra la matriz del cubo, «lyon» los matches de un torneo de Lyon.

Las flechas eligen, INTRO ejecuta, ESC cierra. Un comando se ejecuta como si se hubiera tecleado; s y ss abren la línea de comandos para escribir en ella los filtros; un filtro se ejecuta como con un doble clic en la biblioteca; un match se abre como con un doble clic en el panel de matches.

Cuando hay una Dirección abierta, la paleta añade el torneo: jugadores, mesas, matches en curso y pruebas (véase la búsqueda rápida).

Panel de Análisis

El panel Análisis (CTRL-L) muestra los datos de análisis de la posición actual importados desde eXtreme Gammon (XG), GNUbg o BGBlitz. Presenta las mejores alternativas (jugadas de fichas o decisiones de cubo) con sus valores de equidad y los errores correspondientes. La tecla d alterna entre el análisis de las jugadas de fichas y el análisis del cubo. Durante la navegación por una partida, la jugada realmente jugada se resalta en la lista de alternativas. Pulse CTRL-L o ejecute el comando list para mostrar u ocultar el panel.

Bajo las tablas, una frase dice a veces lo que costó la decisión jugada y por qué: «Pierde 120 mMWC: la jugada realizada deja tres fichas sueltas donde 13/7 8/7 solo deja una.» Procede de seis reglas medibles — la exposición, un punto de la casa hecho o perdido, las posibilidades de gammon abandonadas, una seguridad que cuesta más de lo que aporta, y los dos sentidos de un error de cubo (doblar demasiado tarde o demasiado pronto, aceptar demasiado amplio o pasar demasiado estricto).

La regla que importa es la del silencio: la frase solo aparece cuando una regla se aplica con confianza, y sobre un error que supera el umbral a partir del cual los motores coinciden en que lo es. El resto del tiempo no hay frase — ni marco vacío, ni «no lo sabemos». Una explicación equivocada cuesta más que ninguna: enseña algo inexacto.

Cuando una posición ha sido juzgada por varios motores, una franja en la cabecera del panel los pone lado a lado: una línea por motor, con su profundidad y su respuesta — el veredicto de cubo, o su propia mejor jugada. Dice primero si coinciden, y es la discrepancia lo que la justifica: «XG dice doblar, tomar; gammonNet dice no doblar» se lee de un vistazo, donde había que comparar dos tablas en diagonal.

La mejor jugada de un motor es la mejor de ese motor: la lista de jugadas candidatas está ordenada por equidad, con todos los motores mezclados, así que su primer elemento no es la mejor jugada de ninguno en particular.

La franja aparece solo si de verdad hay varios motores, y existe únicamente en este panel: el panel Eval presenta una decisión, la del motor integrado (ADR-0017), y una comparación no tendría sitio allí.

Las jugadas se escriben como se leen en el tablero, aquí igual que en el panel Eval: la ficha menos avanzada se mueve primero, y una ficha que encadena varios dados se escribe una sola vez — un 64 jugado con la misma ficha se lee 24/14, y 24/14* si golpea al llegar. El detalle del encadenamiento solo reaparece cuando dice algo más: un golpe por el camino conserva su punto de paso, 24/18* 18/14, sin lo cual el golpe en el 18 desaparecería de la notación.

La equidad de un análisis importado sigue la misma regla que el panel Eval: la columna indica su propio marco de referencia, «Equity (money)» o «Equity (match)» según el marcador de la posición analizada, nunca un simple «Equity» mudo sobre la escala. Las reglas Jacoby y Beaver activas en una posición de money game también se muestran, en insignias bajo la tabla de decisión del cubo.

Rollouts

Bajo el análisis, el panel Análisis propone rodar la posición: jugar cientos de partidas a partir de cada jugada candidata, o de cada acción del cubo, para desempatar dos opciones que la evaluación directa apenas distingue. Tres ajustes: Rápido (216 partidas, truncadas a 7 medias jugadas), Estándar (1296 partidas, truncadas a 11 medias jugadas) y Libre, donde todos los parámetros son editables — truncamiento, partidas mínimas y máximas (múltiplos de 36), límite de JSD, profundidad (ply), número de candidatas, semilla y número de procesos. El botón Lanzar el rollout, la tecla r del panel o el comando rollout (alias ro) lo inician; una barra de progreso sigue las partidas jugadas y Cancelar (o r de nuevo) lo detiene sin escribir nada.

El resultado se guarda junto al análisis, nunca en su lugar: un análisis importado no se modifica. Cada rollout forma un bloque con, por candidata, la equidad, el intervalo de confianza del 95 %, la JSD (la distancia a la mejor jugada en desviaciones típicas de la diferencia: a partir del límite, la jugada está decidida y deja de jugarse) y el número de partidas. El rollout se detiene en cuanto las jugadas quedan desempatadas. La Configuración — el motor y la firma completa de los parámetros — se despliega bajo la tabla: dos rollouts con la misma firma dan los mismos números. Un rollout juega el cubo dentro de sus partidas: la clasificación es fiable, la equidad absoluta algo menos, lo que el bloque recuerda. Una posición que no está en la base se puede rodar, pero no se guarda.

El botón Sobre la lista mostrada… (o ro search) rueda, una tras otra, las posiciones de la lista mostrada — resultados de búsqueda, partido o colección — que aún no llevan este rollout; una confirmación da el total antes de empezar. Cada posición se escribe en cuanto termina: cancelar conserva lo hecho, y volver a lanzar continúa donde se detuvo. El avance sobrevive al cierre del panel.

Panel de Comentarios

El panel Comentarios (CTRL-P) muestra, añade y edita los comentarios asociados a la posición actual. Una posición puede llevar varios: se muestran todos, del más reciente al más antiguo. Los comentarios importados de archivos XG se asocian automáticamente a las posiciones correspondientes. Pulse CTRL-P o ejecute el comando comment para mostrar u ocultar el panel.

Cada comentario procedente de un archivo lleva una etiqueta de procedencia (XG, GNU BG, BGF, o importado cuando la procedencia nunca se registró). Los comentarios que usted escribió no llevan ninguna: es el caso corriente, y señalarlo en cada línea sería ruido. Modificar un comentario importado se lo atribuye: tras la modificación, la frase es suya.

Esta distinción se nota en otro sitio: borrar una partida ya no destruye una posición sobre la que usted había escrito. Una nota tomada del archivo de origen sí desaparece con la partida que la trajo.

Las etiquetas

Una etiqueta es una #palabra escrita en un comentario. Nada la declara, ninguna tabla la contiene, y es deliberado: el vocabulario es su propia prosa, y exigir una declaración antes de poder etiquetar convertiría un hábito en papeleo.

Lo que faltaba era la otra mitad: ver el vocabulario que uno se ha construido, y hacer clic en una etiqueta en vez de recordar cómo se escribía. El comando tags, o el botón # junto al campo de escritura, abre la ventana del vocabulario: las etiquetas de esta base, cada una con el número de posiciones que la llevan, pulsables para lanzar la búsqueda correspondiente. Bajo la lista figuran las etiquetas recomendadas que la base aún no usa — un vocabulario tomado de la literatura del backgammon (#blitz, #prime, #holding, #backgame, #containment, #crunch, #ace-point, #timing…), sugerido y nunca impuesto: una etiqueta ausente de esa lista vale exactamente lo mismo que una que figure en ella.

Al escribir, un # propone las etiquetas que esta base ya usa, y luego las recomendadas. Es lo que evita escribir #back-game un día y #backgame al siguiente, algo que nada más detectaría.

La búsqueda por etiqueta se escribe #prime en la línea de comandos. Es delimitada: #prime no encuentra #priming, mientras que una búsqueda de texto ordinaria, que busca una subcadena, no sabe distinguirlas. Varias etiquetas se acumulan — s #prime #backgame pide las posiciones que llevan ambas — porque una posición lleva varias etiquetas: nombrar dos solo puede querer decir «las dos». Es lo contrario del filtro de fase o de procedencia, donde una posición solo tiene un valor y nombrar dos valores solo puede querer decir «una u otra».

La misma lista se obtiene fuera de la interfaz con blunderdb list --type tags (véase Interfaz de línea de comandos (CLI)).

La papelera

Eliminar una posición, una colección o un comentario pasa por una papelera: la eliminación se produce, pero una copia de lo que desaparece se conserva treinta días. El comando trash abre la ventana que las lista, cada una con Restaurar y Eliminar.

Una posición restaurada vuelve con su análisis y sus comentarios — devolverla desnuda sería una restauración solo de nombre. No vuelve con su número antiguo: la fila original ya no existe, y blunderDB la vuelve a guardar por su huella, lo que garantiza que nunca crea un duplicado pero le da un identificador nuevo. Una colección vuelve con su lista; las posiciones que contenía nunca fueron eliminadas — una colección es una vista sobre ellas.

Lo que tiene más de treinta días lo elimina el comando vacuum, nunca la apertura de una base: no hacer vacuum es conservarlo todo.

Nota

La papelera no viaja. Una exportación no la lleva, y eliminar una partida no pone nada en ella: la purga de posiciones huérfanas que sigue a la eliminación de una partida es una limpieza automática, no un gesto del usuario — véase la regla de retención en Panel de Partidas.

Panel de Búsqueda

El panel Búsqueda (CTRL-F o TAB) permite filtrar las posiciones según criterios libremente combinables: estructura de fichas, tipo de decisión de cubo, magnitud del error, fechas, etiquetas, etc. La tecla TAB abre simultáneamente el panel de búsqueda y el editor de posición, lo que permite definir una estructura de fichas que buscar directamente en el tablero.

Panel de Búsqueda

El panel Búsqueda: filtros numéricos, estructura de fichas en el tablero, pestañas Al menos / Excepto.

Para buscar entre las posiciones mostradas, use el comando ss seguido de filtros (p. ej.: ss nc, ss E>40). ss busca en la lista en pantalla: los resultados de la búsqueda anterior, la colección abierta o las posiciones de la partida en revisión, tanto si el comando se escribe directamente como desde el panel de búsqueda (TAB). La casilla Buscar en los resultados actuales del panel sigue la misma regla. En una colección y en una partida, s se rechaza: buscaría en toda la biblioteca y reemplazaría la lista mostrada.

Los resultados de una búsqueda ss lanzada desde una colección o una partida se abandonan con Esc, con una sola pulsación en cuanto ni un campo ni el panel que tiene el foco tiene algo que cerrar (una jugada seleccionada en el análisis, por ejemplo): blunderDB vuelve a la colección completa, o a la partida en la jugada estudiada, y a la posición que se dejó. Esta vuelta solo sigue a ss: s, lanzada desde el panel de búsqueda abierto sobre una colección o una partida, busca en toda la biblioteca, y Esc ya no devuelve a la lista que se dejó.

El panel ofrece un control explícito del tipo de decisión buscado: Indiferente (ningún filtro), Fichas (decisiones de jugada) o Cubo (decisiones de cubo). Cuando se selecciona Cubo, una segunda lista precisa el subtipo: Todos, Doblar / No doblar (el jugador con el turno debe decidir si doblar) o Aceptar / Pasar (respuesta a un doblaje del rival). El control está sincronizado con el tablero: modificar los dados o el cubo en el tablero actualiza el tipo de decisión, y viceversa. En modo Aceptar / Pasar, el cubo se muestra en el centro del tablero con el valor ofrecido; ese valor sigue siendo editable.

La fase de la partida — apertura, medio juego, carrera, retirada de fichas — es una etiqueta que blunderDB calcula únicamente a partir del tablero. Nunca es editable y se puede buscar con el token ph: de la línea de comandos (ph:race, repetible: ph:race ph:bearoff). Tres de sus cuatro fronteras son las que GNU Backgammon emplea para dirigir sus redes; la cuarta, donde termina la apertura, es una convención de blunderDB: una posición sigue en la apertura mientras ninguno de los dos bandos haya movido más de cuatro fichas de sus puntos de partida, no se haya retirado ninguna y ninguna esté en la barra.

Nota

La etiqueta la recalcula el comando blunderdb repair. En una base abierta por primera vez con esta versión, el cálculo se hace una vez, al abrirla. Una base cuyas fases nunca se han calculado no devuelve nada para ph: — nada, en lugar de una respuesta falsa.

El token like ordena en vez de restringir: su presencia clasifica el resultado por distancia creciente a una posición objetivo — like la actual, like42 la de índice 42 — y los demás tokens restringen el conjunto así ordenado, de modo que s like42 E>80 se lee «las vecinas de la 42 donde fallé». La distancia es una distancia de transporte en pips de ficha, la cantidad de movimiento de fichas que separa dos posiciones, vista del jugador que mueve.

Una vecina es el mismo problema, no el mismo dibujo: la clasificación se toma dentro de la clase del objetivo — mismo tipo de decisión, mismo régimen (dinero o partido) para una decisión de cubo, y un partido distinto del suyo, pues las posiciones que la rodean en su propia partida son sus estructuras más cercanas sin ser jamás sus vecinas. Los dados, el marcador y el cubo quedan fuera de la clase; los tokens ordinarios los filtran cuando se quiere. like42* amplía la clase a todos los tipos de decisión y a ambos regímenes, nunca al partido del objetivo; like<12 descarta lo que está a más de doce pips de ficha. Una clasificación que no encuentra nada devuelve una lista vacía y lo dice, en vez de diez posiciones sin relación.

En modo edición, s like toma por objetivo el tablero dibujado: se dibuja aproximadamente la posición que uno recuerda, se lanza, y la biblioteca responde — allí donde la búsqueda por estructura exige el dibujo exacto. El tablero se lee entonces como una posición y no como un patrón: un punto dejado vacío cuenta como fichas retiradas, lo cual es exacto para una posición real y falsea el cálculo para un dibujo dejado a medias.

Cada vecina lleva su distancia bajo las tablas de análisis, junto con la posición de la que está cerca. Es lo que permite juzgar si uno mira una vecina o una coincidencia, y es la razón de ser del límite. La clasificación se lanza también sin pasar por la línea de comandos: CTRL-MAYÚS-L, o la entrada Posiciones vecinas del menú contextual del tablero.

El token n cuenta encuentros: n>3 conserva las posiciones a las que llegan más de tres jugadas, en todos los partidos. Es otra pregunta distinta de «qué he fallado» — una posición encontrada veinte veces y bien jugada diecinueve sigue siendo la que hay que saber de memoria. Se cuentan las jugadas, no los partidos: la misma posición dos veces en un partido cuenta dos, porque fueron dos decisiones.

El plan de juego es una segunda etiqueta derivada, junto a la fase, y responde a la pregunta que un paquete de filtros guardados no sabe plantear: «muéstrame mis errores en holding game». Token gt:, repetible (gt:holding gt:mutualholding), desde el punto de vista del jugador que mueve — el plan en el que se tomaba la decisión.

Los diez planes reconocidos, en el orden en que las reglas los agotan, del más específico al más general:

  • race — las fichas más atrasadas de ambos bandos se han cruzado: ya no es posible ningún contacto. Frontera de GNU Backgammon.

  • bearin — el jugador que mueve está entrando las fichas mientras el adversario aún mantiene un ancla en su casa.

  • crunch — el jugador que mueve tiene como mucho seis fichas fuera de sus puntos 1 y 2. Regla de GNU Backgammon, umbral de su autor.

  • backgame — dos o más anclas en la casa del adversario.

  • acepoint — una sola ancla, en el punto uno del adversario, con al menos veinte pips de retraso.

  • blitz — tres o más puntos de la casa hechos, y el adversario en la barra o con una ficha suelta que golpear en esa casa.

  • primevprime — ambos bandos mantienen un bloqueo de al menos cuatro puntos, y cada uno tiene una ficha atrapada tras el del otro.

  • mutualholding — ambos bandos mantienen un ancla alta.

  • holding — el jugador que mueve mantiene un ancla alta, el adversario no.

  • contact — contacto, y ninguno de los planes anteriores. La apertura acaba aquí.

Tres de estas reglas son las de GNU Backgammon y están documentadas; las demás son convenciones de blunderDB. La literatura del backgammon describe los planes de juego sin cifrar sus fronteras, y no se ha publicado ninguna medida de acuerdo entre clasificadores para este problema. Los umbrales no documentados — tres puntos de casa para un blitz, cuatro puntos para un bloqueo, veinte pips de retraso para un ace-point game — se enuncian por tanto aquí en vez de esconderse en el código, y están versionados: cámbielos, ejecute blunderdb repair, y toda la base se reetiqueta.

Nota

Se conserva una sola etiqueta por posición, la del jugador que mueve. Una etiqueta derivada nunca es editable, nunca se exporta como verdad, y una base cuyos planes nunca se han calculado no devuelve nada para gt: — igual que para ph:.

El filtro Marcada conserva las posiciones que ha marcado en el programa de origen de la partida. Solo eXtreme Gammon produce esta información, registrada jugada a jugada en el archivo .xg; blunderDB la lee al importar y la conserva. Una decisión de cubo marcada da dos posiciones marcadas, el doblez y la aceptación/paso, ya que blunderDB divide en dos lo que el archivo de origen registra como una sola decisión.

Nota

El marcado no es retroactivo: las partidas ya presentes en la base no contienen esta información, puesto que solo existe en los archivos de origen. Basta con volver a importar el archivo .xg correspondiente — la importación detecta el duplicado y no añade nada más que las marcas, sin tocar los comentarios ni los análisis existentes. El marcado no puede ponerse ni quitarse desde blunderDB: para una lista de trabajo temporal, utilice más bien una colección.

El filtro Comentario consulta los comentarios asociados a las posiciones según tres modos exclusivos. contiene el texto busca una o varias palabras en el texto de los comentarios (campo de entrada, palabras separadas por ;, al menos una debe coincidir); tiene un comentario conserva toda posición que lleve un comentario, sea cual sea su contenido; sin comentario conserva por el contrario las posiciones no anotadas — útil, combinado con un filtro de error o de fecha, para elaborar la lista de lo que queda por comentar.

Nota

Los comentarios importados de un archivo de partida (XG, GNUbg) cuentan como comentarios. Para quedarse solo con los suyos, añada el token co:user en la línea de comandos (co:xg, co:gnubg, co:bgf y co:unknown designan las demás procedencias). Además, los comentarios asociados a una partida o a un torneo no se ven afectados: anotan la partida o el torneo, no sus posiciones.

El filtro Partidas y Torneos se apoya en un selector común (ventana modal) en lugar de la introducción de identificadores numéricos: dos listas de casillas, una para las partidas y otra para los torneos, cada una filtrable por texto (jugador, fecha, evento para las partidas; nombre, fecha, lugar para los torneos), con botones Todo / Ninguno que solo actúan sobre el subconjunto actualmente filtrado. Marcar un torneo marca automáticamente (y atenúa) sus partidas miembro en la lista de partidas, dejando patente que un torneo equivale al conjunto de sus partidas.

El panel de búsqueda cuenta con tres pestañas en su borde izquierdo: Búsqueda (los filtros), Historial y Guardados. La pestaña Historial enumera las búsquedas anteriores con su fecha y su comando: un clic selecciona una búsqueda y muestra la posición asociada en el tablero, un doble clic la vuelve a ejecutar. Cada entrada puede guardarse en la biblioteca de filtros (icono de marcador, dándole un nombre al filtro) o eliminarse. La pestaña Guardados contiene la biblioteca de filtros: hacer doble clic en un filtro guardado para relanzar la búsqueda correspondiente (véase Anexo: Uso avanzado de los filtros). El comando history (alias hi) abre el panel de búsqueda.

La estrella de un filtro de la biblioteca lo fija. Los filtros fijados aparecen como etiquetas en la parte superior del panel, sea cual sea la pestaña abierta, numeradas en el orden de la biblioteca: un clic en una etiqueta lanza el filtro, y ALT-1 … ALT-9 lanzan el filtro fijado de ese rango desde cualquier pantalla en modo NORMAL o EDIT, sin abrir el panel. El filtro plantea entonces la misma pregunta que con el doble clic, estructura de fichas incluida. La fijación pertenece a la base: sigue al filtro renombrado, desaparece con el filtro eliminado y no viaja con la exportación de la biblioteca.

Una búsqueda relanzada conserva su clasificación: s like42 clasifica respecto a la posición 42, y s like respecto al tablero guardado con la búsqueda — el que se estaba consultando o dibujando. Una entrada que no guardó tablero no se relanza contra el de la pantalla, y la barra de estado lo indica.

Truco

Consulte la lista de comandos para ver la lista de filtros disponibles.

Panel de Colecciones

Panel de Colecciones

El panel Colecciones: nombre, número de posiciones, descripción, última modificación.

El panel Colecciones (CTRL-B) permite gestionar colecciones de posiciones. Las colecciones pueden crearse, renombrarse y eliminarse. Se les pueden añadir o quitar posiciones (tecla Supr, se pide confirmación). Haga doble clic en una colección para recorrer sus posiciones con las teclas IZQUIERDA y DERECHA. El comando ss busca entre las posiciones de la colección abierta; Esc vuelve después a la colección (véase Panel de Búsqueda). El orden de las colecciones y de las posiciones dentro de una colección puede cambiarse arrastrando y soltando. Pulse CTRL-B o ejecute el comando collection para mostrar u ocultar el panel.

Importación: lo que se escribe, lo que nunca se escribe

Importar un match, una posición u otra base añade lo que falta; no reemplaza lo que ya está ahí.

  • Una posición nunca se duplica. Es su identidad — fichas, cubo, dados, marcador — la que la reconoce, nunca el archivo del que proviene: la misma posición encontrada en dos partidas sigue siendo una sola fila.

  • Un análisis por motor. eXtreme Gammon, GNUbg, BGBlitz y el evaluador integrado conviven en una misma posición, y el panel Análisis indica el origen de cada uno. Importar uno no borra el otro.

  • Un análisis importado nunca se recalcula. blunderDB lo guarda tal cual, con su etiqueta de nivel («3-ply», «XG Roller++», «Book»), sus equidades, sus errores, sus probabilidades y la suerte de la tirada. La regla es «una evaluación solo rellena un hueco»: el análisis automático tras la importación solo visita las posiciones sin ningún análisis, y Reanalizar posiciones obsoletas deja intacta toda posición que lleve un análisis importado (véase Configuración).

  • Reimportar el mismo archivo no reescribe nada. El match se reconoce como ya presente; solo se añaden las marcas puestas en el software de origen, sin tocar los comentarios ni los análisis.

  • Lo que blunderDB nunca escribe: una suerte recalculada — se lee del archivo fuente, o queda desconocida — y un rollout, cuyos datos no abre dentro de un archivo .xg y que no sabe producir.

Una colección puede estar viva: su contenido ya no es una lista hecha a mano sino el resultado de una búsqueda, reevaluado cada vez que se abre. El botón ◇ en la cabecera de la colección la hace viva con la última búsqueda lanzada; ◈ indica que ya lo está, y el mismo botón le devuelve su lista. Nada se destruye al hacerla viva: las posiciones que contenía siguen ahí al volver atrás.

Una colección viva cuya consulta lleva un token que esta versión ya no conoce se niega a abrirse y lo dice, en vez de devolver toda la base. Es el único fallo que un filtro guardado no debe tener: ensancharse en silencio.

Panel de Partidas

El panel Partidas (CTRL-Tab) lista las partidas importadas. Haga doble clic en una partida (o pulse INTRO) para navegar por sus jugadas. El comando m reanuda la navegación en la última partida visitada.

El usuario puede:

  • recorrer las jugadas de una partida con las teclas IZQUIERDA y DERECHA,

  • pasar de una partida a otra con las teclas PageUp y PageDown,

  • mostrar el análisis de las jugadas (fichas y cubo) pulsando CTRL-L,

  • alternar entre el análisis de las jugadas de fichas y del cubo con la tecla d,

  • ver la jugada realmente jugada resaltada en el análisis,

  • buscar entre las posiciones de la partida con el comando ss (p. ej.: ss E>80); Esc vuelve después a la jugada estudiada (véase Panel de Búsqueda).

La última posición visitada en cada partida se guarda y se restaura automáticamente. Pulse CTRL-Tab o ejecute el comando match para mostrar u ocultar el panel.

El botón ⊕ de una fila enriquece ese partido desde un fichero. No hay nada nuevo detrás: reimportar el mismo partido en otro formato ya lo enriquece en su sitio — la huella canónica reconoce que se trata del mismo partido, y los análisis y comentarios del segundo fichero completan el primero. Lo que aporta el botón es que se encuentra: nadie adivina que una importación es también un enriquecimiento. El informe que sigue dice cuál de los dos ha ocurrido — «enriquecidos: 1» en lugar de «importados: 1».

Cada partida puede exportarse en transcripción Jellyfish .mat mediante el botón ⬇ de la lista de partidas o el botón .mat de la ficha de la partida.

Un clic en un match abre su ficha. Su pestaña Transcripción enumera las jugadas partida por partida, y un clic en una jugada lleva allí la revisión. Cada jugada lleva su gravedad: ? para un error, ?? para un blunder, un filete de color en el margen de la fila, y el coste de la jugada en equity al pasar el ratón sobre la marca. Los umbrales son los de la base (Configuración), los mismos con los que cuentan las estadísticas. La jugada se juzga tal como se jugó: una misma posición jugada dos veces en el match recibe dos juicios. Una jugada que el análisis no puntúa no lleva ninguna marca.

La cabecera de cada partida cuenta sus marcas, esté desplegada o no: se ve sin abrirla en qué partida están los blunders.

El botón Fusionar jugadores de la barra de herramientas del panel abre una ventana que enumera todos los nombres de jugadores de la base con su número de partidas: seleccionar las variantes de ortografía de un mismo jugador, elegir el nombre canónico que se desea conservar y, a continuación, fusionar. Útil para unificar las estadísticas por jugador cuando un mismo jugador aparece con varios nombres.

Cuando una partida está abierta, aparece una barra de información sobre el tablero: recuerda los jugadores presentes (jugador 1 contra jugador 2) así como el contexto de la partida (evento, lugar, ronda, fecha y longitud de la partida, cuando esa información está disponible). Esta barra también se muestra fuera del modo partida: cuando una posición estudiada (procedente de una búsqueda, de una colección o de un acceso directo) proviene de una o varias partidas, indica su procedencia — la primera partida implicada y, en su caso, una insignia « +N » que enumera las demás al pasar el cursor. Una posición importada por separado, que ninguna partida referencia, no muestra nada.

Las pestañas Búsqueda y Eval sustituyen el tablero por un tablero de trabajo: una cinta en la parte superior del tablero lo indica («Tablero de búsqueda», «Tablero de evaluación») y la barra de información se oculta mientras describiría una posición que no está en pantalla. Volver al análisis restaura la posición estudiada.

Al abrir una base que contiene partidas, el panel Partidas se muestra de inmediato y la revisión comienza directamente en la primera posición, para empezar a navegar de inmediato.

Nota

Una base de datos solo puede abrirse en escritura por una única ventana a la vez. Si abre una base ya abierta en otra ventana de blunderDB, se abre en modo de solo lectura: la navegación, la búsqueda y el análisis siguen siendo posibles, pero toda modificación queda desactivada y la barra de título muestra « [solo lectura] ».

Truco

Consulte Atajos de teclado para ver los atajos disponibles.

Panel de Transcripción

El panel Transcripción (CTRL-MAJ-T, comando transcribe o tr) sirve para teclear un partido que se tiene delante — una hoja de partido, una grabación de vídeo — y convertirlo en un partido de la biblioteca. Lo que se teclea es un borrador: vive en la base, se cierra y se vuelve a abrir, y no entra ni en las estadísticas ni en las búsquedas mientras no se haya guardado como partido.

El panel se abre con la lista de borradores de la base: última modificación, jugadores, longitud, número de acciones y el partido ya producido (# seguido de su identificador) o la mención «sin partido». Un clic abre un borrador, y el botón Borradores de la barra vuelve a la lista. El botón Nueva transcripción despliega el formulario de creación.

La lista también se recorre con el teclado: ABAJO y ARRIBA (o j y k) mueven el resaltado, INTRO abre el borrador resaltado, n despliega el formulario. El primer borrador está resaltado al abrir y es el modificado más recientemente: retomar el trabajo de ayer cuesta por tanto dos teclas, CTRL-MAYÚS-T y luego INTRO.

El formulario solo pide una cosa: la longitud del partido. El valor 0 designa una partida por dinero y hace aparecer las casillas Jacoby y Beaver. El campo se abre con la longitud del último borrador modificado, o con 7 cuando la base no contiene ninguno. Los nombres de los jugadores no se piden: el borrador designa los bandos como Jugador 1 y Jugador 2, y la lista muestra «Sin nombre».

Todo lo que se deduce de lo tecleado — la longitud del partido (o «Dinero»), el marcador, la mención Crawford cuando la partida en curso lo es, el número de partida, el estado del cubo — su valor, centrado o a nombre de quien lo posee — y el bando en turno — se muestra en la barra de partido, encima del tablero: ahí es donde ya está la mirada cuando uno se pregunta quién juega. La acción esperada, en cambio, se escribe con todas sus letras en la barra de estado: «dados de Kévin», «respuesta de Alice al doble».

La barra del borrador, en la parte superior del panel, solo lleva los gestos que sacan al borrador de sí mismo, las dos flechas de deshacer y la orientación del tablero.

El jugador 1 permanece abajo en el tablero, sea quien sea el que tenga el turno. Un match que se transcribe es una partida que se desarrolla: el turno cambia en cada medio movimiento, y seguirlo giraría el tablero de una jugada a otra — las fichas que se acaban de mirar pasarían arriba y el ojo rehacería el recorrido en cada tirada. El turno se lee en los dados, que cambian de lado. El botón ⇅ de la barra gira el tablero y muestra al jugador 2 abajo; no modifica el borrador, y la vista vuelve a su posición al cerrarlo. No confundir con el botón Invertir los jugadores del panel Metadatos, que intercambia a los dos jugadores en el propio documento.

El botón Metadatos de la barra despliega la cabecera del borrador, en cualquier momento: los nombres de los dos jugadores — autocompletados a partir de los jugadores de la base —, el evento, el lugar, la ronda, la fecha (la de hoy por defecto), el transcriptor (el usuario de la base por defecto) y el torneo al que se vinculará la partida al guardarla. Ningún campo es obligatorio: un borrador sin nombres se guarda y se exporta igual, con cabeceras vacías. El botón Invertir los jugadores intercambia los dos nombres, da todas las acciones al bando contrario y da la vuelta al tablero: es la misma partida, leída desde el otro lado.

La longitud de la partida se cambia en ese mismo panel, en cualquier momento: el marcador, la partida Crawford y el referencial — las partidas por dinero cuando la longitud es 0, y aparecen entonces las casillas Jacoby y Beaver — se recalculan de un extremo a otro del borrador, y las acciones registradas después de la victoria se señalan «más allá del final» sin que se elimine ninguna. La longitud forma parte de la identidad de una posición: tras guardar, cambiarla y volver a guardar escribe posiciones nuevas, por analizar, y las antiguas desaparecen en cuanto ya nada las retiene.

Debajo de la barra, el borrador ocupa tres regiones: la paleta de objetivos de ratón, las jugadas candidatas y la transcripción. Se disponen según el ancho del panel. En un panel ancho — el dock inferior — las tres están una al lado de otra, con la paleta a la izquierda. En un panel mediano, las candidatas ocupan la parte superior y la transcripción se coloca junto al triángulo de las tiradas, en el espacio que este deja a su derecha. En un panel estrecho las tres se suceden: candidatas, paleta, transcripción — allí el triángulo y la transcripción no caben lado a lado sin amputar a la transcripción su segunda columna, y basta con ensanchar el dock unas decenas de píxeles para reunirlos. En todos los casos la regla es la misma: nada se interpone entre las dos casillas de la tirada y la primera línea de candidatas, y al menos cinco candidatas se leen sin desplazar nada.

La paleta muestra los dos dados a medida que se introducen; un clic sobre ellos los borra, como RETROCESO. Una partida empieza con su primera jugada, hecha por el ganador de la tirada de apertura: sus dos dados se teclean como esa tirada, el dado del jugador 1 y luego el del jugador 2, y el más alto da la jugada a su bando, que juega los dos dados. La jugada se elige después entre los candidatos, como cualquier otra. Los empates, que se repiten en la mesa, no se transcriben; una primera jugada tecleada como doble se registra tal cual y se marca «dados incoherentes», ya que ninguna tirada de apertura es un doble, y un doble del cubo antes de la primera jugada se marca «acción de cubo imposible». Una acción de cubo anotada después del final de una partida lleva la misma marca: se queda en la partida terminada, no abre una nueva y se borra a mano.

En cuanto cae el segundo dado, se listan todos los movimientos legales de la tirada, clasificados por el motor incorporado, el primero preseleccionado y sus flechas puestas sobre el tablero. La lista da el movimiento, su equidad y su diferencia con el mejor: transcribir es reconocer el movimiento que se ha visto jugar, no juzgarlo — para eso está el panel Evaluación. Esta clasificación es una evaluación: se muestra, nunca se escribe en la base. Cuando el motor no está disponible, los movimientos se listan sin clasificar y la lista lo dice en su cabecera.

La rueda selecciona el candidato siguiente o anterior, tanto sobre la lista como sobre el tablero: la mirada permanece en el tablero y las flechas desfilan, lo que reconoce un movimiento más rápido que leer su notación. Un clic en una fila la selecciona, un doble clic la valida.

El triángulo de las veintiuna tiradas se sitúa bajo las dos casillas de la tirada, junto al teclado y no en su lugar: dos dígitos siguen siendo el doble de rápidos que un clic, y el triángulo está ahí para quien transcribe con la mano en el ratón. Una casilla por tirada, nunca dos: 3-1 y 1-3 son la misma tirada.

Una jugada realizada en el tablero ahorra leer los dados. Mientras no se haya introducido ningún dado, un clic en una ficha y luego en su destino — o un arrastre de una a otro — juega la jugada en el tablero, limitada a las jugadas legales; los destinos que ofrece la ficha elegida se iluminan. Los dos dados se deducen de los pasos: jugar 13/7 y luego 8/7 dice 6-1 sin que se haya tecleado una cifra, y la acción se registra en cuanto la jugada está completa. Retroceso deshace el último paso, una cifra abandona la jugada y vuelve a la entrada de dados, y un doble clic fuera del tablero la reinicia. Cuando varias tiradas producen la misma jugada — una salida que varios dados cubren, un dado que no se puede jugar — no se registra nada y el triángulo solo deja pulsables esas tiradas: la tirada nunca se adivina en lugar de quien mira la partida.

Con los dos dados introducidos, el tablero también juega, limitado a las jugadas legales de esa tirada — al final del documento como en una acción releída, cuyos dados ha cargado el cursor. Cada paso jugado solo deja en la lista los candidatos que lo contienen, con el primero preseleccionado: es el gesto de la jugada lejana, allí donde bajar hasta el duodécimo candidato cuesta trece teclas. Una jugada legal completa se registra en el acto, con los dados tal como se teclearon; en una acción releída, la sustituye.

Un movimiento ilegal se transcribe tal como se jugó, sin botón ni cambio de modo. Con los dados introducidos, un arrastre que ninguna jugada legal ofrece deja la ficha donde se suelta — incluso desde un punto del que no sale ninguna jugada legal, siempre que tenga una ficha del bando que tiene el turno. La jugada sale entonces de las reglas: el resto se juega libremente, con clic o con arrastre, la lista de candidatos cede su lugar a una línea que lo recuerda, y nada se registra antes de INTRO, que escribe los dados introducidos, los pasos y el tablero obtenido. Retroceso deshace el último paso; deshacer el único paso fuera de las reglas devuelve la lista. Sin dados introducidos, el arrastre sigue limitado: un movimiento ilegal no dice qué tirada lo produjo.

La jugada también se teclea, en la transcripción. Un doble clic en la celda de una jugada — o de un baile, de una jugada no consignada — la convierte en un campo, rellenado con su notación. Allí solo se teclea la jugada, 13/7 8/7*, bar/22 o 6/off: los dados son los de la celda. INTRO la registra en lugar de la jugada escrita, ESCAPE cierra la celda sin escribir nada, y un texto que no indica ninguna jugada deja el campo abierto. La celda punteada de la entrada en curso se abre igual, en cuanto sus dos dados están introducidos.

Un movimiento introducido por el arrastre libre o por la notación que resulte ser legal sigue siendo un movimiento ordinario — la comparación se hace sobre el tablero obtenido, nunca sobre la procedencia del gesto; si no, se marca «movimiento ilegal» en la transcripción, y la exportación .mat advierte antes de escribir el archivo, sin negarse nunca.

En la línea de los dados, la fila Doblar, Aceptar, Pasar, Abandonar lleva al ratón los cuatro gestos de cubo: son, junto con los dos dados, las cinco respuestas posibles a una sola pregunta — ¿qué hizo el bando en turno? Dice a quién le toca: el bando en turno anuncia — doblar, abandonar — o el bando contrario responde — aceptar, pasar; nunca los cuatro a la vez, y un botón cuyo gesto no respondería a nada permanece apagado. El teclado, en cambio, nunca rechaza nada: un botón apagado es un objetivo que no se ofrece, no un gesto prohibido. «Abandonar» todavía no registra nada: la fila se convierte en los tres niveles — simple, gammon, backgammon — y «Cancelar», que duplica la tecla ESCAPE. El cubo dibujado en el tablero es el segundo objetivo de estos gestos: un clic en él propone un doble. Ante una oferta no responde — aceptar y pasar son dos respuestas simétricas y viven juntas en la fila, un clic cada una.

La barra de estado dice en una palabra lo que el borrador espera: el baile registrado de oficio, la primera jugada de una partida, la respuesta esperada a un doble, el nivel esperado tras un abandono, la corrección en su sitio, el movimiento «a revisar» cuya tirada ha cambiado. También responde ahí a los gestos que no tienen nada que hacer — «nada que deshacer», «ninguna acción bajo el cursor» — durante un segundo y medio. La incoherencia que una acción ha dejado tras de sí se señala, en cambio, en la cabecera de la transcripción, allí donde está la celda defectuosa.

Una partida termina con un paso, con un abandono o con la salida de la decimoquinta ficha (simple, gammon o backgammon, multiplicado por el valor del cubo). El marcador, la partida Crawford y el final del partido aparecen entonces en la barra de partido, y se espera la primera jugada de la partida siguiente.

El marcador de una partida es el que dan las partidas anteriores, salvo si se anunció otro en la mesa. Un doble clic en el marcador del encabezado de una partida, en la transcripción, lo convierte en un campo rellenado: allí se teclea el marcador con el que se jugó la partida — 3-2, 3–2 o 3 2 —, INTRO lo registra, ESCAPE cierra el campo sin escribir nada, y un campo vaciado y luego validado vuelve al marcador derivado. La partida se juega con ese marcador: la partida Crawford, el final del partido y las partidas siguientes se derivan de él, y tanto el partido guardado como el archivo .mat lo llevan. Un marcador que difiere del derivado se marca, la información emergente da el derivado, y la primera acción de la partida lleva la incoherencia «marcador anunciado incoherente». En dinero no hay marcador que anunciar.

La transcripción ocupa la mitad derecha del panel: una columna por jugador, una línea por turno, la acción de cubo y el final de partida en la columna de quien actúa. La celda del cursor está enmarcada; mover el cursor devuelve el tablero a la posición de la acción señalada y muestra sus candidatos, con el movimiento registrado seleccionado. Una incoherencia (movimiento ilegal, doble turno, acción de cubo imposible, acción más allá del final del partido, dados incoherentes, movimiento no consignado, marcador anunciado incoherente) decora su celda y se nombra en una información emergente. El movimiento no consignado es el caso de un archivo .mat releído: gnubg escribe ahí ??? cuando no ha guardado el movimiento jugado, la tirada se conoce y el movimiento no, y poner el cursor en esa celda propone los movimientos de esa tirada para completarlo. Un doble turno deja una celda vacía, enmarcada con líneas discontinuas, en la columna del bando al que le falta el turno: el cursor se detiene en ella, un clic lo lleva allí, y es allí donde se teclea el turno que falta — una decisión eliminada, por ejemplo. Las partidas se pliegan; la del cursor está abierta.

Lo que se está tecleando se dibuja en la transcripción, con trazo discontinuo, en el lugar exacto donde se escribirá: los dados a medida que caen, la notación del movimiento en cuanto se selecciona, y en la columna del bando al que corresponde la acción. Una corrección cubre la celda que reemplaza, una inserción abre una celda entre sus dos vecinas, una entrada nueva aparece al final de la partida en curso. Nada se escribe en el borrador antes de la validación; lo que se lee y lo que dirá el documento nunca divergen.

Corregir es teclear en la celda donde se está. Con el cursor sobre una acción, una cifra vuelve a empezar su tirada en el sitio, y las cuatro acciones de cubo valen también como correcciones: sobre un rechazo, t — o el botón Aceptar — escribe una aceptación en lugar del rechazo, sin tener que borrarlo y luego insertar. La partida retoma entonces su curso: se abre una celda justo después de la aceptación, en el bando del que dobló, y el resto de la partida se teclea allí como de costumbre, insertado delante de la primera jugada de la partida siguiente, hasta que la partida termina. Las mismas teclas rellenan la celda que acaba de abrir una inserción: i y luego d inserta un doble delante de la acción señalada. Esa primera jugada conserva el marcador con el que empezaba su partida, ahora anunciado: si el final de la partida reanudada da otro, la diferencia se marca.

Volver a la última acción es volver allí donde se escribe la transcripción. Una cifra tecleada sobre ella corrige todavía su tirada, pero una vez vuelta a teclear esa tirada, la cifra siguiente la valida y abre la decisión siguiente; INTRO la valida igualmente. Las decisiones siguientes se añaden entonces a continuación, como la primera vez.

Teclear otra tirada en la primera jugada de una partida decide de nuevo quién empieza: el dado del jugador 1 se teclea primero, el del jugador 2 después, y gana el más alto — dado grande primero, la jugada es del jugador 1, abajo del tablero; dado pequeño primero, del jugador 2, arriba. El primer candidato de la nueva tirada queda preseleccionado y la jugada debe revisarse. Volver a teclear la misma tirada, en un orden u otro, no cambia nada. Para dar la primera jugada al otro jugador sin cambiar la tirada, se usa s: el orden de los dados sigue al bando, y una primera jugada hecha por el bando que ese orden no designa se marca «dados incoherentes». El resto de la partida conserva sus bandos.

Una inserción en medio del documento sigue insertando: la validación abre una celda vacía a continuación, y la acción siguiente se inserta a su vez en lugar de sobrescribir la de después. Es lo que permite recuperar todo el final de una partida — un rechazo que debería haber sido una aceptación — sin perder lo que ya se ha tecleado de la partida siguiente. El final de la partida, o mover el cursor, pone fin a la inserción: el cursor se coloca entonces sobre la primera jugada de la partida siguiente.

Supr (o x) retira la decisión en curso de edición y retrocede a la anterior, lista para corregirse: en una celda escrita, la acción desaparece; en una inserción abierta o una tirada tecleada al final del documento, lo que se abandona es la entrada. Pulsando Supr repetidamente se remonta así la transcripción borrando. Las acciones siguientes conservan su bando, y el doble turno que deja una eliminación se señala sin que el cursor vuelva a él.

Un clic derecho en una celda abre las correcciones de esa acción — insertar antes, insertar después, eliminar, cambiar de bando — y lleva el cursor hasta ella de paso; son los mismos gestos que las teclas i, a, x y s, y el menú del navegador solo se suprime ahí. No tienen botones en otro sitio: un botón que actuara sobre «la acción bajo el cursor» apuntaría a una celda que quizá no se vea, mientras que el clic derecho nombra la suya.

La barra del borrador lleva sus dos únicas salidas. «Terminar» (CTRL-INTRO) escribe el partido en la biblioteca y libera el borrador; el análisis de las solas posiciones nuevas arranca enseguida, con su progreso y su cancelación en la barra de estado. «Abandonar» elimina el borrador sin partido; la confirmación solo se pide para un borrador que nunca se ha terminado, pues se lleva todo lo escrito en él. Al lado, la barra dice lo que hará Terminar —un partido nuevo, o la sustitución del partido #n—. No dice nada de la salvaguarda del borrador mismo: se escribe en la base tras cada acción, y volver a la lista lo deja para retomarlo más tarde.

«Texto .mat» abre el archivo Jellyfish tal como se escribiría, en una ventana lo bastante ancha para que sus columnas sigan alineadas, con un botón para copiarlo. «Exportar .mat» escribe ese mismo archivo en el disco. Las dos flechas ↶ y ↷ deshacen y rehacen, como CTRL-Z y CTRL-MAYÚS-Z.

Si el análisis de una partida transcrita se interrumpió — la aplicación se cerró durante el lote —, la barra de estado lo indica en la siguiente apertura de la base y propone terminarlo. No se guarda nada de esa interrupción: la propuesta vuelve mientras queden posiciones por analizar, y el lote reanudado solo abarca esa partida, nunca toda la biblioteca.

Un borrador que lleva incoherencias se termina de todos modos, tras una advertencia: no se rechaza nada. Una jugada ilegal se exporta tal como se jugó, con la advertencia de que gnubg y XG la señalarán («Invalid move») y divergirán después.

El panel Partidas recuerda cada borrador en curso encima de la lista de partidos: la línea «Borrador en curso» abre la pestaña Transcripción.

Para corregir un partido de la biblioteca, el botón ✎ de la lista de partidos o «Editar la transcripción» de su ficha abre un borrador a partir de ese partido —o reabre el que ya está abierto sobre él—: un solo borrador por partido. Terminar este borrador sustituye el partido con el mismo identificador; las posiciones de las acciones sin cambios conservan sus comentarios, sus análisis y sus tarjetas. Un partido importado (XG, GnuBG, BGF) lleva análisis y comentarios que un .mat no lleva: antes de abrir, un diálogo indica hasta cuántos, y que terminar el borrador puede perderlos.

Truco

Consulte Atajos de teclado para ver los atajos disponibles.

Panel de Torneos

Panel de Torneos

El panel Torneos: un torneo por fila, número de partidas, PR del jugador de referencia.

El panel Torneos (CTRL-Y) permite agrupar partidas en torneos para un seguimiento organizado y un análisis estadístico por evento. Los torneos pueden crearse, renombrarse y eliminarse; las partidas pueden asignarse a ellos. Las estadísticas del panel Stats pueden filtrarse por torneo. Pulse CTRL-Y para mostrar u ocultar el panel.

Los torneos se llenan solos al importar. Los archivos XG, GnuBG y BGF nombran su evento; al importar una partida nueva, blunderDB la clasifica en el torneo de ese nombre y lo crea si aún no existe. La fecha y el lugar del torneo quedan vacíos: es aquí donde se rellenan. Una partida ya presente en la base nunca se reclasifica: reimportar su archivo no deshace la organización hecha a mano.

La columna PR de cada torneo muestra el PR del jugador de referencia — es decir, el jugador presente en el mayor número de partidas del torneo (en caso de empate, el que haya tomado más decisiones). El PR no mezcla por tanto su juego con el de sus adversarios: para sus propios torneos, refleja únicamente su rendimiento. El nombre del jugador de referencia aparece en un cuadro emergente al pasar por encima del valor.

Dirigir un torneo

blunderDB sabe dirigir un torneo, y no solo archivarlo. La dirección la lleva el motor Nicomaque, de Nicolas Harmand: él sostiene el formato, los emparejamientos, los cuadros y la clasificación; blunderDB le da su interfaz y guarda sus partidos. El botón ⓘ de la barra del panel recuerda ese crédito y lleva al repositorio y a la documentación del motor.

Un torneo dirigido se elige en el panel Panel de Torneos (CTRL-Y, comando direct): abrir un torneo y luego Dirigir este torneo. Un torneo ya dirigido muestra su estado junto a su nombre y el botón pasa a ser Abrir. Mientras una dirección está abierta, la zona principal muestra el torneo en lugar del tablero — la única excepción de blunderDB a esa regla; pasar a cualquier otra pestaña devuelve el tablero.

Una dirección tiene tres estados: en preparación mientras no se ha lanzado ningún partido, en curso después, y cerrada una vez fijada la clasificación. Reabrir un torneo cerrado es posible, y pide confirmación: la clasificación final deja de ser final.

Todo lo que se decide se escribe en un registro, y nada más. La clasificación, los cuadros, las propuestas y los avisos se reproducen desde ese registro en cada apertura: un corte de luz no cuesta nada, y una corrección nunca borra lo ocurrido — se añade.

La página Dirección

Aquí es donde el director pasa la mayor parte del tiempo. De arriba abajo: los avisos del motor, que quedan visibles y nunca bloquean nada; la cuadrícula de mesas, cuya cabecera lleva el botón Imprimir la hoja de emparejamientos; la última decisión; la cola de propuestas; y los jugadores libres. La cuadrícula va antes que la cola: una cola larga nunca la saca de la pantalla.

La vista ocupa todo el ancho del área principal, y cada pestaña se desplaza por sí sola: al salir de una pestaña y volver, o al pasar de una prueba a otra, se recupera la posición en que se dejó. Los botones y los campos miden al menos 40 píxeles de alto, para acertarlos sin precisión en la mesa; el número de columnas de la cuadrícula sigue el ancho del área, no el de la ventana. En los Ajustes, cada sección se pliega sobre su título, y el botón Abrir en el navegador del encabezado abre la página mural con un clic en cuanto se ha elegido una carpeta de salida.

Una ronda propuesta se anuncia antes de lanzarla: Próxima ronda…, junto a Imprimir la hoja, pide la fecha y la hora que se imprimirán («lunes 21/09, 20 h») e imprime la hoja de los emparejamientos de la cola, marcada como «anunciada». No se lanza ni se escribe nada en el diario: la ronda se lanza el día previsto, a su hora. Un emparejamiento que espera una mesa libre lleva un guion en lugar del número de mesa.

En la parte superior de la vista de torneo, la banda del reloj cabe en una línea: la hora, el tiempo transcurrido desde el primer match lanzado, los matches jugados y en curso, el ritmo observado en minutos por punto frente al previsto, los matches lentos, la próxima pausa y el fin estimado. El fin estimado es la previsión del motor: vuelve a jugar el diario, termina el torneo quince veces al ritmo previsto, y la banda da la mediana, desplazada después de las pausas declaradas. Una noche que no está declarada como pausa cuenta, por tanto, como juego. Una hora que no es la de hoy lleva su día.

A partir del segundo día, el tiempo transcurrido deja paso al día de juego (el día del primer match lanzado es el día 1) y al tiempo de juego: el tiempo durante el que al menos un match estaba en curso, sin las noches ni los intervalos en que ninguna mesa jugaba. Un torneo cerrado ya no tiene banda del reloj.

Una propuesta se confirma con un clic en Lanzar. Lanzar todo confirma en dos clics las propuestas que tienen mesa, tras mostrar su lista; Confirmar está en la cabecera de esa lista. Los emparejamientos sin mesa se quedan en la cola, marcados «ninguna mesa libre»: en modo rondas, una ronda sigue abierta mientras no estén en ella todos sus jugadores. «Ignorar por ahora» no escribe nada: el motor es determinista, y la propuesta vuelve idéntica en la siguiente llamada. Emparejar a mano está siempre disponible — el motor propone, el director decide.

Un match emparejado a mano sin número de mesa toma la primera mesa libre; se rechaza una mesa donde hay un partido en curso. Si todas las mesas están ocupadas, se lanza igualmente y su casilla aparece al final de la cuadrícula, «sin mesa», hasta que se le traslade a una mesa.

Una propuesta puede llevar una observación del motor: ninguna mesa libre, o un final de partido previsto durante una pausa. Sigue siendo lanzable en ambos casos. Cuando una fase funciona por microrrondas, la cola muestra el tiempo que falta para el próximo lote; al vencer, las propuestas aparecen solas, y nada se lanza por su cuenta.

La ficha de resultado

Un clic en una mesa ocupada abre la ficha del partido. Muestra dos grandes objetivos: los nombres de los dos jugadores. Hacer clic en el que ha ganado registra el resultado — dos clics en total, mesa incluida. El ganador es lo único exigido; el marcador es libre, uno, ambos o ninguno. Con el teclado, IZQUIERDA o DERECHA elige al ganador e INTRO lo registra. La ficha solo se cierra cuando el resultado está escrito: un fallo la deja abierta, con su mensaje.

El botón ⋯ de la ficha despliega lo que se usa raramente: la incomparecencia (forfait) — cada botón nombra al ausente y a quien gana —, una observación libre («caído por tiempo», «abandonado por motivo de…»), el traslado del partido a otra mesa y su anulación. La incomparecencia y la anulación se confirman. Trasladado a una mesa ocupada, el partido intercambia su mesa con el que la ocupa: dos partidos nunca comparten mesa, y el mismo gesto los devuelve a su sitio. Si un registro antiguo dejó dos en una mesa, la cuadrícula muestra las dos casillas, señaladas, hasta que se traslade una.

Un error de escritura visto en el acto se retoma en dos clics bajo la cuadrícula: Corregir la última decisión y luego el ganador correcto (CTRL-Z abre la misma corrección). Una corrección más antigua se hace desde el historial.

Los menús contextuales

Un clic derecho, la tecla MENU o MAYÚS-F10 sobre un objeto de la página Dirección abre sus acciones habituales sin pasar por la ficha: una casilla de la cuadrícula (libre u ocupada), un jugador (pestaña Jugadores, jugadores libres), un puesto del cuadro, un hueco, una propuesta de la cola, una fila del historial. El menú se abre sobre el objeto; ARRIBA y ABAJO lo recorren, INTRO elige, ESC lo cierra y devuelve el foco al objeto.

  • Casilla ocupada: introducir el resultado, abandono de uno u otro, cambiar de mesa (apuntar a una mesa ocupada intercambia las dos partidas), anular la partida, historial de cada jugador.

  • Casilla libre: iniciar aquí el emparejamiento seleccionado, poner la mesa fuera de servicio o volver a ponerla en servicio (mesas de un evento). Una mesa reservada a otra prueba no ofrece nada.

  • Jugador: introducir el resultado de su partida en curso, ir a su mesa, historial, emparejar a mano con otro jugador libre, ir a la otra prueba en la que también juega, marcar ausente o presente, retirar ahora o tras su partida, volver a inscribir, corregir la ficha.

  • Puesto sin partida: vincular una partida importada que este puesto está esperando.

  • Emparejamiento: iniciar, iniciar en una mesa…, cambiar la longitud…, emparejar de otro modo (estas tres entradas abren el emparejamiento a mano con los dos jugadores, la longitud y la mesa del emparejamiento), ignorar por ahora, imprimir la hoja de la ronda.

  • Fila del historial: corregir o anular, añadir una observación, filtrar por uno de los jugadores.

El abandono, la anulación de una partida y la retirada de un jugador conservan la confirmación que tienen en la ficha y en los botones de las filas. Mientras una acción está en curso, las entradas que actúan aparecen atenuadas, como los botones. Solo hay un menú abierto a la vez: abrir un segundo cierra el primero.

Con el teclado, la cuadrícula ocupa una sola parada de TAB: cada casilla recibe el foco, también las libres, y IZQUIERDA, DERECHA, ARRIBA, ABAJO, INICIO y FIN pasan de una casilla a otra. Un dígito abre la ficha de la mesa con ese número; para una mesa superior a 9, el segundo dígito se teclea en 0,4 s. M abre la ficha en el campo de mesa, y X también, esté la ficha ya abierta o no: apuntar a una mesa ocupada intercambia las dos partidas.

Con el ratón, se arrastra una casilla ocupada sobre otra: sobre una casilla libre el partido cambia de mesa; sobre una casilla ocupada, una línea «¿Mesa 3 ↔ Mesa 7?» pide confirmar el intercambio de los dos partidos. Un fantasma sigue al puntero y la casilla de destino se resalta; ESC cancela el gesto, y no se escribe nada hasta soltar el puntero sobre una casilla. Una mesa fuera de servicio se rechaza y la barra de estado da el motivo. En la línea de comandos, blunderdb tournament move hace el mismo traslado o intercambio (véase Interfaz de línea de comandos (CLI)).

Pantalla completa

La tecla F11 de la página Dirección, o el botón de abajo a la derecha, la pone en pantalla completa: la barra de herramientas, las pestañas, el tablero, el panel y la barra de estado desaparecen y toda la ventana pasa a la dirección. El modo atraviesa las pestañas de la dirección (Dirección, Jugadores, Historial, …). Un menú o una ficha abiertos se cierran primero con ESC; un segundo ESC, o F11, sale de la pantalla completa y devuelve la ventana a su estado anterior. Salir de la página, cambiando de pestaña de la aplicación o cerrando la dirección, también le pone fin.

La búsqueda rápida

La tecla / de la página Dirección abre la paleta solo sobre el torneo: jugadores, mesas, matches en curso y pruebas del evento abierto, o de la prueba sola cuando no está en ningún evento. Se teclea un nombre, un club o un número de mesa («4» o «t4»); los jugadores en una mesa van antes que los jugadores libres. INTRO lleva al objeto: un jugador en un match, un match o una mesa ocupada abren la ficha de la mesa, una mesa libre recibe el foco en la cuadrícula, un jugador libre se muestra en la pestaña Jugadores filtrado por su nombre, una prueba pasa a ser la pestaña actual. Un resultado de otra prueba del evento cambia primero de prueba. ESC cierra sin abrir nada, y la tecla sigue siendo una barra oblicua en un campo de texto. CTRL-MAYÚS-P abre la paleta completa, que también contiene el torneo.

Los jugadores

La pestaña Jugadores inscribe, corrige y retira. El campo de inscripción mantiene el foco y se vacía tras cada nombre: veinte jugadores se inscriben solo con el teclado. El autocompletado propone los jugadores de la base; elegir uno fija la ortografía exacta que llevan sus partidos y rellena su valoración con su PR.

El directorio reúne a los inscritos de todos los torneos dirigidos de la base, sin duplicados por nombre, con el club y la valoración de su última inscripción. Nunca se almacena: borrar una dirección retira de él a sus inscritos. Retomar los inscritos de un torneo anterior es un clic, sean cuantos sean; el directorio se copia en CSV o se guarda en un archivo (Guardar…), y se relee pegado.

Un torneo de dobles inscribe parejas: la casilla Pareja añade el nombre, el club y la valoración del compañero. La pareja juega con el nombre «A / B», que llevan también sus partidas; su valoración es la media de ambas, y un valor escrito en Valoración de la pareja la sustituye. El directorio conserva a las dos personas, nunca la pareja.

Antes de Inscribir, la vista previa de un CSV pegado enumera las líneas ilegibles —sin nombre, sin separador cuando las demás líneas lo tienen, una puntuación que no es un número— y los duplicados, dentro de lo pegado o con un jugador ya inscrito. Un duplicado no se inscribe salvo que se marque su casilla.

Un rezagado que llega tras el sorteo ocupa un bye libre si el cuadro ofrece alguno, y la interfaz escribe junto al campo dónde entrará antes de validar. Sin plaza libre, se inscribe igualmente y la vista dice en qué fase entrará. Ningún sorteo ya hecho se rehace.

Una retirada se hace ahora o tras su partido en curso, según el jugador se marche enseguida o termine lo que juega; se confirma.

Un jugador que se pierde una ronda no necesita ser retirado: Marcar ausente, en su línea, abre un pequeño formulario bajo su nombre — hasta una hora (rellenada de antemano con la hora siguiente), o, cuando la fase en curso es un suizo por rondas, hasta la ronda con su número. El motor simplemente deja de emparejarlo, pero su rango, sus vidas y su lugar en el cuadro siguen siendo los que ha ganado — la ausencia no es un forfait. Volver, en su línea, levanta la ausencia con un clic, antes o después del plazo declarado.

Corregir la ficha de un jugador retirado — su nombre, su club, su puntuación — lo deja retirado. Su vuelta es un gesto aparte: Reinscribir, en su línea. Vuelve a emparejarse, con los resultados y las vidas que tenía al irse; los matches perdidos por incomparecencia al retirarse siguen perdidos.

Cuadros, huecos, clasificación, historial

La pestaña Árboles dibuja los cuadros con sus líneas de unión, de la primera ronda a la final, la consolación junto al cuadro principal y, para un suizo, la tabla de vidas. Un grupo se lee como una tabla cruzada de resultados. Un cuadro que aún no se ha sorteado muestra su esqueleto en gris. Una partida ya jugada lleva su resultado; una partida que el motor señala se marca en su sitio. Un punto junto al nombre de la pestaña indica que un cuadro está en curso.

Hacer clic en un puesto (o pulsar Intro sobre un puesto enfocado) abre sobre él la misma ficha que en la cuadrícula de mesas: el ganador de una partida en curso se introduce con dos clics, y una partida terminada se corrige haciendo clic en el nombre del verdadero ganador.

La pestaña Huecos enlaza el torneo con la biblioteca. Cada partido del torneo es un hueco, que se llena de dos maneras: transcribir el partido en el acto (Panel de Transcripción), o adjuntar un partido ya importado. Nada se adjunta por deducción: una coincidencia de nombres es una sugerencia que se acepta, un emparejamiento parcial ni siquiera se sugiere, y si el archivo de un partido adjunto contradice el resultado registrado, la discrepancia se muestra sin resolverla — durante un torneo, la palabra del director es la que vale.

La pestaña Clasificación muestra la clasificación actual, sección por sección, con el balance de cada uno (victorias–derrotas) y los premios cuando hay una dotación configurada. Dos empatados comparten el puesto y el premio. Un jugador retirado conserva el puesto que le vale su recorrido, marcado «retirado» con su balance o el punto del cuadro donde se detuvo. Cerrar el torneo fija la clasificación final. La clasificación se copia en CSV, en el idioma de la interfaz, o se guarda en un archivo: Guardar… abre el diálogo del sistema con un nombre propuesto, el torneo seguido de la palabra «clasificacion» y la fecha del día, y el archivo contiene exactamente el CSV copiado. En la línea de comandos, blunderdb tournament standings escribe el mismo CSV.

Cerrar sin matches en curso es un clic. Con matches en curso, la Clasificación dice cuántos y espera un segundo clic en el sitio: cerrar congela la clasificación sin ellos, y su resultado ya no se puede anotar. Reabrir se confirma de la misma manera; la clasificación final deja entonces de ser final, y la reapertura queda en el registro.

La pestaña Historial es el registro en claro: una línea por decisión, en orden, filtrable por jugador o por partido. Es lo que un director relee tras una reclamación, y ahí es donde una decisión antigua se corrige o se anota.

Corregir, en la línea de un resultado, abre debajo la misma corrección que la última decisión: hacer clic en el ganador correcto, con el tanteo si hace falta. El resultado original se queda en su sitio en el registro, la corrección se añade, y la clasificación la tiene en cuenta al instante.

Los ajustes

La pestaña Ajustes se abre con formatos con nombre: seis torneos de club listos para usar, el primero recomendado. Elegir uno basta para empezar; los campos siguen siendo modificables después.

Aquí se ajustan: las fases y la longitud de sus partidos, las longitudes ronda a ronda de un cuadro («15, 13, 11» se lee de la última ronda hacia atrás), el número de mesas, el ritmo previsto en minutos por punto (8 por defecto; la banda del reloj y el fin estimado parten de él), las pausas del día, la dotación (inscripción, retención del club, baremo por sección) y la carpeta de la pantalla.

Un cuadro tiene tres casillas: Consolación (sus perdedores juegan un segundo cuadro, una sección aparte en la clasificación), Reconciliación (el ganador de la consolación juega contra el del cuadro principal; la casilla solo aparece con la consolación) y Recarga (en doble eliminación, al ganador del cuadro principal hay que ganarle dos veces; la casilla solo aparece con la reconciliación). Una consolación solo tiene clasificación propia con un baremo: mientras el de la sección Consolación esté vacío, los Ajustes lo recuerdan. Una fase de Grupos se ajusta con el tamaño de los grupos (4 por defecto) y el número de clasificados por grupo (2 por defecto).

Los ajustes siguen accesibles durante el torneo: bajar el umbral a las 22 h para terminar antes, añadir una consolación el sábado por la noche, mientras el cuadro no se haya sorteado. Lo que entonces queda fijado aparece en gris con su motivo: el formato de una fase abierta, el número de vidas que ha repartido y, desde el sorteo de una fase, el tamaño de sus grupos y su número de clasificados. Guardar durante el torneo muestra primero la lista de lo que va a cambiar y pide confirmación. Lo que el motor rechaza figura allí con su motivo, y entonces no se guarda nada: es el caso de la consolación, la reconciliación o la recarga de un cuadro ya sorteado.

Una mesa con el tablero roto se declara en Mesas fuera de servicio: sus números, separados por comas («7, 12»). El motor deja de asignarla, y la cuadrícula la muestra no disponible; bajar el número de mesas quitaría la última, no la rota. Si hay un match en curso en una mesa puesta fuera de servicio, la lista de lo que va a cambiar lo dice y nombra una mesa libre a la que moverlo, desde la ficha del match.

Las cabezas de serie son una opción, desactivada por defecto: el estudio del motor concluye «sin cabezas de serie protegidas», que es la cultura actual del backgammon. Activadas, los jugadores se colocan por valoración.

Las pruebas de un evento

Varias pruebas jugadas en las mismas mesas — una principal, una speed, dobles — se agrupan en un Evento, al pie de los Ajustes: Crear y vincular… crea el evento con su número de mesas, Vincular… le añade una prueba dirigida. Vincular muestra primero lo que cambiará: las mesas de la prueba pasan a ser las del evento. Separar del evento devuelve la prueba a sí misma, con su registro y sus mesas; Eliminar el evento, tras confirmación, lo envía a la papelera y separa sus pruebas sin eliminar ninguna.

En un evento, ninguna prueba propone una mesa donde juega otra: la cuadrícula muestra esas mesas ocupadas, con el nombre de la prueba, y un emparejamiento sin mesa libre espera. Una mesa fuera de servicio se marca una vez, en el evento, y vale para todas sus pruebas; el número de mesas, las mesas fuera de servicio y las pausas cambiados en los Ajustes de una prueba valen también para el evento, y la lista de lo que cambiará nombra las demás pruebas.

Las propiedades de las mesas se ajustan en el panel Evento: una tabla con una fila por mesa, con su nombre («Stream», por ejemplo), su sala (una etiqueta libre), una casilla Reservada y los jugadores a quienes está Asignada a, elegidos entre los inscritos en las pruebas del evento. Para cuarenta mesas, Mesas de N a M, sala pone una sala en todo un rango de una vez; Guardar solo escribe las mesas que llevan alguna propiedad, las demás siguen siendo mesas ordinarias. Una mesa reservada nunca se propone, pero se puede colocar en ella un partido a mano, mediante un lanzamiento, un traslado o un arrastrar y soltar. Una mesa asignada recibe primero el partido de su titular, cuando está libre; si no, el partido recibe una mesa ordinaria, y fuera de los partidos de sus titulares se comporta como una mesa reservada. Dos titulares de mesas distintas que se enfrentan juegan en la más pequeña de las dos.

Una sala es el conjunto de mesas que llevan la misma etiqueta: «sala A» para las mesas 1 a 20, «sala B» para las siguientes. En los Ajustes de cada prueba adjunta, Salas donde juega esta prueba marca las salas donde juega: el DMP en B, el speed en A. Sin ninguna casilla marcada, son todas las mesas; una prueba no recibe ninguna propuesta fuera de sus salas y no puede trasladar allí un partido. Quitar una sala que lleva un partido en curso de la prueba se rechaza, nombrando la mesa. Una prueba que juega sola ajusta las mismas propiedades de mesa en sus propios Ajustes, sin salas de prueba.

Abrir la Dirección de una prueba de un evento abre también las otras: aparece una pestaña por prueba en la parte superior de la Dirección, cada una con su resumen — propuestas pendientes, partidos en curso, una alerta si la hay. Cambiar de prueba es un clic en su pestaña, sin confirmación; la prueba abandonada no se cierra ni se vuelve a reproducir, queda exactamente como se dejó. Un torneo fuera de todo evento solo tiene una prueba: ninguna pestaña que mostrar.

La pestaña Todas las mesas, a la izquierda de las pruebas, muestra todas las mesas del evento en una sola cuadrícula: una casilla por mesa, sea cual sea la prueba que la ocupa, marcada con el nombre y el color de su prueba. La ficha de resultado, los menús contextuales, el teclado y el arrastrar y soltar funcionan allí como en la cuadrícula de una prueba, y cada gesto se dirige a la prueba de la casilla. Arrastrar un partido a una mesa ocupada por otra prueba intercambia los dos partidos tras una confirmación que nombra las dos pruebas. Bajo la cuadrícula, las propuestas de todas las pruebas se agrupan por prueba, cada una con su botón Lanzar. Hacer clic en una prueba o en una pestaña de vista abandona Todas las mesas.

Cuando el evento tiene varias salas, la cuadrícula se agrupa por sala, bajo el nombre de cada una. El nombre de una mesa se muestra junto a su número, con una bandera para una mesa reservada y una estrella seguida de los titulares para una mesa asignada; las propuestas también nombran la mesa.

Una misma persona puede jugar varias pruebas del evento: dos Participantes con el mismo nombre son la misma persona, y en una pareja de dobles cuenta cada uno de sus dos miembros. Mientras juega en una prueba, las demás no la proponen, y su lista En espera dice dónde juega: «juega en la principal, mesa 4». El emparejamiento a mano sigue permitido: el match empieza y su casilla de la cuadrícula lleva la misma mención.

La pantalla del torneo

Un torneo se mira. Elegir una carpeta de pantalla en los Ajustes basta de una vez por todas: blunderDB reescribe allí una página HTML autónoma en cada cambio, y la página se recarga sola. Se abre sin conexión, en una segunda pantalla o proyectada, y no carga ningún recurso externo. Abrir en el navegador la muestra al instante.

La hoja de emparejamientos se deja en la mesa de recepción: un clic en Imprimir la hoja abre el diálogo de impresión del sistema. Una línea por partido — los dos jugadores, la longitud, la mesa, dos casillas vacías para el marcador — y una ronda de treinta y dos jugadores cabe en una página A4.

Un evento tiene su propia carpeta de salida, elegida una vez en su panel de Ajustes con el mismo botón Elegir carpeta: blunderDB escribe allí index.html, la página mural del evento — una línea por mesa, sea cual sea la prueba que la ocupa, con las rondas anunciadas de cada prueba y un enlace a su propia página — y cada prueba vinculada escribe la suya en una subcarpeta. Un gesto en cualquier prueba del evento regenera la página mural; la carpeta propia de una prueba vinculada se conserva pero se ignora mientras siga en el evento.

Cuando una prueba está en fase de cuadro y este ya se ha sorteado, su página mural y la del evento muestran el árbol en grande, legible de lejos: una columna por ronda, con los perdedores que bajan a la consolación en línea discontinua. La página va alternando sola, sin script, entre su contenido habitual (las mesas, en el evento) y el árbol de cada prueba en cuadro, doce segundos cada uno; se recarga siempre cada treinta segundos y retoma la rotación donde estaba. Una prueba sin cuadro — una fase suiza, por ejemplo — no tiene árbol y la página queda como antes.

Fuera de la interfaz, el subcomando blunderdb tournament lee un torneo dirigido sin interfaz gráfica: list, verify, standings, page y export; page --rencontre escribe la página mural de un evento en lugar de la página de una sola prueba. Véase Interfaz de línea de comandos (CLI).

Panel Stats

Introducción

El panel Stats permite analizar el nivel de juego y seguir la progresión a lo largo del tiempo a partir de las posiciones importadas en la base de datos. Calcula y muestra los indicadores PR (Performance Rating) y MWC cost (Match Winning Chance cost) para el conjunto de las posiciones o para un subconjunto filtrado.

El panel Stats resulta especialmente útil para:

  • situar su nivel respecto a las bandas de nivel (Clase mundial, Experto, Avanzado…) gracias al PR global;

  • seguir su progresión torneo a torneo o partida a partida gracias a los gráficos de la pestaña Progresión;

  • identificar sus puntos débiles: la pestaña Errores para ver el reparto entre jugadas de fichas y decisiones de cubo, y la distribución de las magnitudes de error;

  • comparar entre sí a los jugadores de la base, una fila por jugador, gracias a la pestaña Jugadores — útil para seguir una competición entera;

  • acceder directamente a las posiciones implicadas haciendo clic en cualquier indicador (drill-down).

Apertura del panel

Para abrir el panel Stats:

  • Pulse CTRL-D.

  • Escriba el comando stats o st en la línea de comandos.

Nota

El panel se actualiza automáticamente cada vez que se modifica el filtro. No recalcula las estadísticas al alternar simplemente entre PR ↔ MWC: ambas métricas se calculan simultáneamente por el backend.

Barra de filtro

La barra de filtro, en la parte superior del panel, permite restringir el cálculo a un subconjunto de posiciones.

Perspectiva del jugador

La lista desplegable Jugador permite filtrar las estadísticas según el jugador analizado. blunderDB selecciona automáticamente el jugador cuyo nombre aparece con más frecuencia en la base de datos, modificable en cualquier momento.

Truco

Cambiar de jugador no provoca ninguna pérdida de datos; basta con volver a seleccionar el jugador anterior en la lista.

Filtros disponibles

  • Torneo(s) — restricción a uno o varios torneos. Pueden seleccionarse varios torneos simultáneamente.

  • Fechas — intervalo temporal (Desde … Hasta). Si solo se indica la fecha de inicio, se incluyen las posiciones más recientes.

  • Tipo de decisión — Todas / Jugadas de fichas / Decisiones de cubo.

  • Longitud de match — restricción a longitudes de match concretas (1, 3, 5, 7, 9, 11, 13, 15, 21 puntos). Pueden combinarse varias longitudes.

Un botón Reset restablece todos los filtros (salvo el jugador autodetectado).

Nota

Los filtros se guardan en la configuración de blunderDB (config.yaml) y se restauran en el próximo inicio.

Conmutador PR / MWC

El botón PR / MWC situado en la parte superior del panel alterna la métrica mostrada en todas las pestañas.

PR (Performance Rating)

El error medio de equidad por decisión contada, multiplicado por 500 como hacen eXtreme Gammon y GNUbg: un PR de 5,0 vale 0,010 de equidad perdida por decisión, es decir 10 milipuntos (mpt). La regla de conteo exacta — qué decisiones entran en el denominador, cómo se convierte el marcador — es la de Anexo: Modelo de estadísticas — alineación XG / gnuBG / blunderDB.

Las bandas de nivel que el panel dibuja detrás de la curva de progresión son una referencia indicativa propia de blunderDB: ninguna publicación es autoridad sobre estos umbrales. El límite superior de cada banda queda excluido: un PR de 4 es Avanzado, no Experto.

Nivel

PR

Clase mundial

< 2

Experto

2 – 4

Avanzado

4 – 6

Intermedio

6 – 9

Ocasional

9 – 12

Principiante

≥ 12

MWC cost (Match Winning Chance cost)

Probabilidad acumulada de victoria del match perdida a causa de los errores, sobre el conjunto de datos filtrado. Calculada a partir de la MET Kazaross-XG2 integrada en blunderDB.

Prudencia

El MWC cost no es aplicable a las posiciones de money-game (sin apuesta de match). Esas posiciones se excluyen del cálculo de MWC. Los valores de MWC dependen de la MET utilizada; no son directamente comparables entre programas que usan METs diferentes.

El cambio PR ↔ MWC es instantáneo: no se realiza ningún recálculo en el backend.

El informe HTML

El botón Informe HTML de la cabecera del panel produce un documento autónomo: un solo fichero, sin imagen externa, sin hoja de estilo remota, sin script. Los diagramas son SVG en línea, dibujados por el mismo renderizador que el tablero en pantalla, con su paleta. Se abre en cualquier navegador, viaja por correo electrónico, y se imprime en PDF desde el propio navegador — lo que evita incorporar un generador de PDF para producir lo que todo el mundo ya tiene.

Contiene los indicadores del ámbito actual (posiciones, partidos, decisiones contadas, PR global, de fichas y de cubo), luego las diez decisiones más costosas, cada una con su diagrama, su coste, el partido del que viene y la mejor jugada cuando un análisis la da.

El informe lleva el filtro actual del panel Estadísticas. Un informe que no dice su ámbito es un informe cuyas cifras no significan nada: ajuste el filtro — un torneo, un rango de fechas, un jugador — antes de producirlo.

Pestaña Dashboard

La pestaña Dashboard ofrece una vista sintética de los indicadores clave.

Pestaña Dashboard del panel Stats

La pestaña Dashboard: PR global, PR fichas, PR cubo.

Tarjetas de nivel

Tres tarjetas muestran el PR (o MWC) para:

  • PR Global — todas las decisiones (fichas + cubo);

  • PR Ficha — solo jugadas de fichas;

  • PR Cubo — solo decisiones de cubo.

Hacer clic en una tarjeta carga en el panel de análisis las posiciones del subconjunto correspondiente (drill-down).

Nota

El número total de decisiones se muestra en la parte inferior de cada tarjeta al pasar el cursor.

PR deslizante sobre las últimas N decisiones

Una fila de valores PR (o MWC) calculados sobre las últimas N decisiones (N = 5, 10, 50, 100, 250, 500, 1000) permite medir la tendencia reciente. Los valores atenuados corresponden a un N superior al número de decisiones disponibles.

Hacer clic en un valor carga las últimas N posiciones correspondientes.

Top blunders

La lista de los 10 peores errores (o MWC cost), ordenados por magnitud decreciente. Hacer clic en una fila carga la posición implicada en el panel de análisis.

Pestaña Progresión

La pestaña Progresión presenta la evolución del nivel a lo largo del tiempo.

En la cabecera de la pestaña, un objetivo: «PR < 5 en doce semanas». Una meta, un plazo, y una tendencia que dice hacia dónde se va — nada más. Un objetivo que se pusiera a calificar, felicitar o recordar sería otra función, no esta.

El botón Proponer sugiere una meta a partir del nivel actual: el límite inferior de la banda en la que está, es decir, la entrada en la siguiente. Proponer «un poco mejor» no se anclaría en nada; proponer un escalón dice algo — pasar de intermedio a avanzado se ve y se cuenta.

La tendencia es un ajuste por mínimos cuadrados sobre el PR de sus partidos, proyectado al plazo. Se niega a pronunciarse por debajo de tres partidos: trazar una recta entre dos puntos sería una afirmación que no se puede sostener. Y la frase lo dice cada vez — una tendencia no es una predicción.

El objetivo se guarda en los metadatos de la base, no en la configuración: se refiere a esa biblioteca, así que sigue al fichero y no a la máquina. Ningún cambio de esquema: metadata ya es una tabla de claves y valores, legible por blunderdb info como por el demonio.

Curva por torneo

Un gráfico de líneas muestra el PR (o MWC) para cada torneo (eje X: orden de los torneos, eje Y: valor de la métrica). Unas bandas de color materializan los umbrales de nivel.

Hacer clic en un punto del gráfico abre un menú contextual con dos opciones:

  • Abrir torneo — abre el torneo en el panel Torneos.

  • Abrir posiciones — carga todas las posiciones del torneo en el panel de análisis.

Gráfico de dispersión por partida

Un diagrama de dispersión representa cada partida (eje X: fecha, eje Y: PR o MWC). El tamaño del punto es proporcional al número de decisiones de la partida.

Hacer clic en un punto abre un menú contextual:

  • Abrir partida — abre la partida en el panel de partidas.

  • Abrir posiciones — carga todas las posiciones de la partida en el panel de análisis.

Pestaña Errores

La pestaña Errores desglosa las fuentes de error.

Pestaña Errores del panel Stats

La pestaña Errores: desglose del PR por acción de cubo.

Errores recurrentes

Al principio de la pestaña, una tabla agrupa los errores del filtro actual — es decir, los de un solo jugador cuando hay un jugador filtrado — por plan de juego y por tema, el más costoso primero. Responde a la pregunta «¿dónde pierdo más?»: por ejemplo, «tenencia · demasiados blots».

  • Un error es una decisión contada cuyo coste alcanza el umbral Error de la biblioteca.

  • El plan de juego es el del jugador con el turno, tal como lo presenta la pestaña Desgloses.

  • El tema de una jugada de fichas es el que nombran las reglas de la frase de explicación del panel de Análisis: gammon subestimado, demasiados blots, punto no hecho, demasiado pasivo. El de una decisión de cubo es el sentido del error, como en la dirección de los errores de cubo más abajo: doble omitido, doble prematuro, pase indebido, toma indebida.

  • Un error que ninguna regla nombra con seguridad no se adivina: sale de la clasificación y aparece aparte, bajo la tabla, en una línea por plan de juego (« sin tema identificado: N errores, coste X »), también pulsable. Ese resto suele ser el más pesado, porque la explicación solo se pronuncia a partir de 60 mp, por encima del umbral Error: clasificado con los demás, encabezaría una tabla que no diría nada.

  • El coste es la parte del PR del filtro que representa el grupo: la fórmula del PR aplicada a los errores del grupo, referida a todas las decisiones contadas. Los costes de los grupos nunca superan, pues, el PR.

Al hacer clic en un grupo se cargan sus posiciones, de la más costosa a la menos costosa. El tema se recalcula en cada visualización y nunca se guarda: como el plan de juego, es una etiqueta derivada, no editable. En línea de comandos: blunderdb stats recurring (véase stats — Errores recurrentes).

Reparto por acción de cubo

Un diagrama de barras muestra el PR (o MWC) para cada tipo de decisión de cubo: NoDouble, DoubleTake, DoublePass, TooGood. Cada barra indica también el número de decisiones y la tasa de blunders en una información emergente.

Hacer clic en una barra carga las posiciones correspondientes a esa acción de cubo, solo las que tienen un error (drill-down).

Dirección de los errores de cubo

El reparto anterior indica cuánto cuestan las decisiones de cubo; esta tabla indica en qué sentido se equivocan.

Una posición de cubo lleva dos decisiones tomadas por dos jugadores distintos, presentadas aquí en dos filas:

  • Ofrecer — el jugador que tiene el cubo dobla o no dobla. Sus errores son los dobles perdidos (había que doblar) y los dobles prematuros (no había que hacerlo).

  • Responder — el jugador al que se ofrece el cubo toma o pasa. Sus errores son los pases erróneos (se pasó una toma correcta) y las tomas erróneas (se tomó un pase correcto).

Las dos filas se mantienen separadas a propósito: un jugador puede perfectamente doblar tarde y tomar holgado, y un indicador único llamaría a eso «equilibrado» perdiendo las dos mitades de la información.

Cada casilla muestra el número de decisiones; la información emergente da la equidad perdida acumulada. Hacer clic en una casilla carga las posiciones correspondientes. Una casilla a cero no es pulsable.

Nota

Esta tabla cuenta decisiones, no emite juicios. A partir de qué diferencia una tendencia merece ser nombrada depende del tamaño de la muestra y de un punto de referencia, que no son datos del motor.

Comparación Checker / Cube

Un diagrama comparativo coloca lado a lado el PR de las jugadas de fichas y de las decisiones de cubo. Hacer clic en una barra carga las posiciones del subconjunto con error.

Histograma de las magnitudes de error

Un histograma distribuye los errores según su magnitud en milésimas de punto (intervalos: 0–5, 5–10, 10–25, 25–50, 50–100, ≥ 100). Hacer clic en una barra carga las posiciones del intervalo.

Pestaña Desgloses

La pestaña Desgloses divide las mismas decisiones que cuentan las cifras globales según cuatro ejes. Ninguno redefine qué cuenta como decisión: sería un segundo PR con el mismo nombre.

  • Por fase de la partida — apertura, medio juego, carrera, retirada de fichas. Es lo que responde a «mi PR en carrera frente a mi PR en contacto». La etiqueta se calcula a partir del tablero (véase Panel de Búsqueda); una base cuyas fases nunca se han calculado lo ordena todo bajo Sin clasificar, y blunderdb repair la rellena.

  • Por plan de juego — carrera, blitz, ancla, backgame, bloqueo contra bloqueo… Es el desglose para el que existe el clasificador: «¿dónde pierdo más?», plan por plan. La misma etiqueta derivada que la fase, las mismas reservas, y blunderdb repair la rellena igual.

  • Por etiqueta — las #palabra escritas en los comentarios. Una posición puede llevar varias: estas filas no suman el total, y el panel lo dice bajo la tabla. Una etiqueta califica, no particiona.

  • Por marcador — los puntos que faltan a ambos bandos, leídos del lado del jugador en turno, es decir del lado de quien decide. La fila Money es la partida por dinero. Una celda con menos de diez decisiones aparece en gris con su efectivo visible en lugar de oculta: demasiado poco para leerse, pero la omisión sigue siendo verificable.

Nota

La partida Crawford no se distingue: blunderDB no registra ese indicador en una posición. El efecto práctico es pequeño — una partida Crawford no tiene ninguna decisión de cubo — pero la omisión es real y vale más escribirla que dejarla adivinar.

Estudio y juego real

El comando blunderdb list --type study --days 30 pone tres números uno al lado del otro, plan por plan: cuántas posiciones distintas se repasaron en el periodo, cuál era el PR antes, cuál es el PR desde entonces.

Tres números, y ningún cuarto. No hay columna de ganancia ni flecha, porque aquí nada controla nada: el jugador pudo encontrarse con rivales más fuertes, cambiar de formato, o simplemente jugar más carreras este mes. La comparación es del lector; una columna que anunciara un efecto afirmaría una causalidad que estos datos no sostienen. Los números, en cambio, son exactos.

Los repasos se cuentan en posiciones distintas: una tarjeta repasada cuatro veces en el mes es una posición estudiada, y contar las repeticiones haría que un mes de empolle pareciera un mes de cobertura. Las decisiones del PR, en cambio, se cuentan todas — cada una se tomó una vez. Un PR apoyado en menos de diez decisiones se muestra —, con su muestra visible al lado.

Pestaña Jugadores

Las cuatro pestañas anteriores describen a un jugador; la pestaña Jugadores los compara a todos. Muestra una fila por jugador de la base, lo que responde a la necesidad de un organizador que sigue una competición entera más que a un jugador.

Pestaña Jugadores del panel Stats

La pestaña Jugadores: una fila por jugador, ordenable por cualquier columna.

Columnas, por orden:

Columna

Significado

Jugador

El nombre tal como figura en las partidas. Un jugador registrado con dos grafías aparece, pues, en dos filas; use la fusión de jugadores para reunirlas.

Partidas

Número de partidas disputadas en el periodo retenido.

V–D

Victorias y derrotas. Una partida inacabada (registro truncado, abandono) no cuenta ni la una ni la otra: V + D puede ser, pues, inferior al número de partidas.

Decisiones

Número de decisiones contadas — el denominador del PR. Es la columna que dice cuánto valen las tasas vecinas: un PR calculado sobre doce decisiones no significa nada.

PR

Performance Rating global.

PR fichas, PR cubo

El PR desglosado por tipo de decisión.

Snowie

Snowie Error Rate (véase Anexo: Modelo de estadísticas — alineación XG / gnuBG / blunderDB).

Blunders

Número de errores que alcanzan el umbral de blunder de la biblioteca (0,100 EMG por defecto).

Suerte

Suerte media por tirada, en milésimas de punto, con signo: positiva si los dados fueron favorables.

Uso:

  • Ordenar — haga clic en un encabezado de columna. La tabla se abre ordenada por PR creciente, mejor jugador primero. Los jugadores de los que nada se ha medido permanecen abajo sea cual sea el sentido de la ordenación: un cero por falta de datos no es una actuación perfecta.

  • Abrir el detalle de un jugador — haga clic en una fila. El jugador queda seleccionado en la barra de filtros y la vista cambia a la pestaña Dashboard.

  • Restringir el periodo — los filtros de fechas, de torneos y de longitud de partida se aplican con normalidad, lo que permite acotar la tabla a las fechas de una competición.

  • Comparar dos jugadores — marque la casilla de la primera columna en dos filas. Sobre la tabla aparece un bloque que enfrenta sus indicadores; marcar a un tercer jugador sustituye al más antiguo de los dos. La casilla no selecciona la fila: marcar compara, hacer clic abre el detalle.

En ese bloque solo las tasas reciben un veredicto, y la mejor de las dos va en negrita. Tres indicadores no lo reciben nunca, y vale la pena decir por qué. La suerte no es una cualidad: un jugador más afortunado no es mejor. Los partidos, el balance y las decisiones dicen lo que valen las tasas, pero ponerlos en competición haría ganar a quien simplemente jugó más. El número de blunders no se compara en bruto — doce sobre mil decisiones valen más que diez sobre cien —, por eso el bloque añade una línea Blunders / 100 dec. que sí se compara, y deja el recuento al lado como contexto.

Un empate no es una victoria: no se pone en negrita en ningún lado. Una tasa sin nada detrás se muestra como «—» y no decide nada.

Nota

En esta pestaña, la lista Jugador y la elección del tipo de decisión están desactivadas: la tabla muestra a todos los jugadores y ya desglosa las decisiones de fichas y de cubo en columnas distintas.

Importante

Un guion («—») señala un valor nunca medido, que no debe confundirse con cero. Es en particular el caso de la columna Suerte para toda partida importada antes de la versión 2.15.0 del esquema: la suerte no se conservaba entonces, y nada permite reconstruirla después. Reimportar el archivo de origen no basta: la importación reconoce un duplicado y solo toma sus marcas. Hay que eliminar la partida y luego volver a importarla. Los formatos que no la transportan (BGF, Jellyfish .mat) no la aportarán nunca.

Regla de agregación

Importante

El PR de un torneo (o de cualquier subconjunto) se calcula mediante la regla suma/suma, nunca como media de los PR individuales de las partidas.

Fórmula:

\[PR_{torneo} = 500 \times \frac{\sum_{i} \text{error}_i}{\text{número total de decisiones}}\]

Ejemplo: un jugador disputa dos partidas en un torneo —

  • Partida A: 10 decisiones, 0,100 de equidad perdida → PR = 5,0

  • Partida B: 90 decisiones, 0,540 de equidad perdida → PR = 3,0

Media ingenua de los PR: (5,0 + 3,0) / 2 = 4,0 (incorrecto)

Regla suma/suma: 500 × 0,640 / (10 + 90) = 3,2 (correcto)

La regla suma/suma es la única que maneja correctamente la variación de longitud de los matches (un match a 21 puntos pesa más que un match a 1 punto).

MWC: limitaciones

  • El MWC cost se calcula a partir de la MET Kazaross-XG2, tabla de referencia de facto en el backgammon competitivo. Los resultados no son directamente comparables con programas que usan otras MET. Es la misma tabla, leída por el mismo punto de entrada, que la que usa el evaluador integrado para sus decisiones de cubo a un marcador de match: las estadísticas y el motor no pueden divergir en esto. Da sus propios valores hasta 25 puntos por hacer de cada lado; más allá, se prolonga con una tabla de Zadeh calculada como la de GNUbg, hasta 64.

  • Las posiciones de money-game (sin puntuación de match) se excluyen del cálculo de MWC. Si su base de datos contiene muchas posiciones de money-game, el MWC cost puede estar subestimado o no estar disponible.

  • El MWC cost es acumulativo sobre el conjunto de datos filtrado, no es un indicador por decisión. Mide el impacto total de sus errores sobre sus posibilidades de victoria.

Panel Eval

El panel Eval (CTRL-E) evalúa en directo cualquier posición que esté en el tablero; en una posición de bearoff se especializa y calcula además el EPC (Effective Pip Count). Se activa pulsando CTRL-E, haciendo clic en la pestaña Eval del panel inferior o ejecutando el comando eval; epc, su antiguo nombre, también lo abre. El panel se llamó EPC, luego Bearoff, antes de convertirse en Eval — es por tanto aquí donde hay que buscar lo que una versión anterior llamaba el panel Bearoff, nombre que ya solo designa la pestaña de configuración de las tablas de bearoff.

El panel muestra siempre la única decisión que pide la posición colocada en el tablero — nunca dos a la vez — y los hechos que la acompañan. Cada magnitud se lee en el eje que le conviene y no en un eje único impuesto: la probabilidad de victoria, de gammon, de backgammon y la equidad cubeless de cada jugador, calculadas antes de la tirada, se leen por jugador (abajo, arriba, luego Δ), a la izquierda de la decisión de cubo, cuando no hay dados colocados. Los hechos y la decisión permanecen uno junto al otro: la decisión de cubo nunca pasa por debajo de las cifras que la justifican, sean cuales sean el idioma de la interfaz y la posición en el tablero. En cuanto hay dados colocados, esos mismos valores antes de la tirada cambian de eje: se leen al tiro, en cabeza de la lista de jugadas candidatas, en forma de una fila en cursiva antes de la tirada — no una jugada candidata más, sino una referencia contra la que leer cada jugada. La diferencia entre esa fila y una jugada contiene la suerte de la tirada, nunca el mérito de la jugada, y por eso no lleva ninguna columna de error. En una posición de bearoff puro, una segunda tabla, siempre por jugador y siempre presente, con o sin dados colocados, lleva el EPC, el pip count, el wastage, el número medio de tiradas y la desviación típica; esas cinco columnas nunca migran. Las dos tablas están apiladas y comparten la misma rejilla de columnas: mismos bordes, mismas referencias de columna, una sola columna de puntos de color — se leen como un solo objeto de dos pisos. El botón Añadir a la base, el distintivo de régimen, la atribución del motor (la profundidad de la última evaluación figura también en ella) y la casilla Desafío forman una banda aparte, alineada a la derecha por encima de las tablas.

Solo la lista de jugadas candidatas se desplaza — la fila antes de la tirada, también ella, permanece fijada encima; el resto del panel (hechos, distintivo, decisión de cubo) permanece siempre visible, sin ningún ajuste particular del tamaño del panel.

La tabla de hechos y la decisión las calcula gammonNet, integrado, sin XG ni gnubg. El cálculo sigue la posición sin bloquear nunca la interfaz: una profundidad 0-ply se muestra de inmediato con cada gesto y luego, tras medio segundo de inmovilidad, una evaluación más profunda (2 plies por defecto, ajustable en la pestaña gammonNet de la configuración) la sustituye en segundo plano — cualquier nuevo gesto cancela ese cálculo de fondo. La profundidad mostrada en la banda de distintivos, o dentro del distintivo de régimen en una posición de carrera, es siempre la que ha producido efectivamente la cifra mostrada, nunca la solicitada; no se repite en cada fila, puesto que una evaluación en directo comparte la misma profundidad para todas las jugadas. La equidad de las jugadas candidatas y de la decisión de cubo sigue el marcador de la posición: en money game se expresa en puntos, en un marcador de match en equidad normalizada — la misma escala que XG y GNU Backgammon, donde ganar el valor del cubo actual vale +1 y perderlo −1 — nunca mezcladas en una misma tabla. El encabezado de la columna lo indica explícitamente en lugar de dejar la escala a adivinar: «Equity (money)» en money game, «Equity (match)» en un marcador de match. Tiene en cuenta el cubo vivo: la búsqueda valora cada posición final mediante el modelo de cubo (Janowski, eficiencia medida) en el estado del cubo de la posición, tal como hacen XG y GNU Backgammon en la evaluación cubeful. Esto es lo que hace visibles, al marcador, los efectos gammon-go y gammon-save — a 4-away/2-away, el jugador que va detrás juega 8/2 6/2 con una apertura de 6-4 porque su doblaje temprano dará al gammon el valor del match, algo que una evaluación sin cubo no puede ver. La fila antes de la tirada, por su parte, sigue siendo una equidad cubeless: es un hecho de la posición, no una decisión. La evaluación nunca se registra: es un cálculo, no un análisis. Hacer clic en una jugada candidata la muestra en el tablero en forma de flechas, exactamente como en el panel Análisis. El discreto botón ?, en la banda de distintivos, lleva al repositorio del motor gammonNet; la atribución completa (red Strehl, configuración gammonNet) figura en los Agradecimientos de la ayuda.

El botón Añadir a la base, al principio de la banda de distintivos, registra en la base la posición colocada en el tablero; CTRL-S, el comando w y el botón Guardar posición de la barra de herramientas hacen lo mismo. Solo se escribe la posición, nunca la evaluación mostrada; si el análisis automático de gammonNet está activado, su lote se inicia a continuación, como tras una importación. La barra de estado anuncia el número de la posición, también cuando ya figuraba en la base: queda entonces marcada como importada por separado, y el filtro Importada por separado (s i) la encuentra. El panel sigue abierto sobre el mismo tablero, que sigue siendo un tablero borrador: se puede mover una ficha y añadir la variante, y salir del panel devuelve a lo que se estaba estudiando. El botón está desactivado mientras no haya ninguna base abierta, o mientras la posición no pueda registrarse (por ejemplo la posición inicial del panel, en la que el jugador de arriba ha sacado todas sus fichas); su información emergente indica el motivo.

El usuario edita la posición de las fichas en todo el tablero, exactamente como en modo edición: el clic izquierdo coloca una ficha del jugador de abajo, el clic derecho una ficha del jugador de arriba. La segunda tabla, la de la carrera, solo aparece cuando la posición obtenida es un bearoff puro (todas las fichas de ambos jugadores en su cuadrante); en cualquier otra posición, solo responde la tabla de las cuatro columnas comunes (victoria, gammon, backgammon, cubeless), y la decisión se refiere a las fichas o a un cubo genérico según haya o no dados colocados.

En cada tabla de hechos, una fila por jugador — identificada por su punto de color, con el jugador negro siempre abajo. La primera lleva, mientras no haya dados colocados, la victoria, el gammon, el backgammon (probabilidades, sin el signo %) y la equidad cubeless del jugador; la segunda, en una posición de bearoff y con o sin dados colocados, el EPC, el pip count, el wastage (diferencia entre el EPC y el pip count), el número medio de tiradas y la desviación típica. Cuando ambos jugadores tienen valores que comparar, una fila Δ da las diferencias con signo (abajo − arriba: negativa cuando el jugador negro va en cabeza). Fuera de una posición de carrera, colocar dados hace por tanto desaparecer las propias tablas de hechos: las cuatro columnas que llevaban acaban de cambiar de eje, al tiro, en cabeza de la lista de jugadas.

La decisión de cubo tiene siempre la misma forma, sea cual sea el origen de las cifras — tabla exacta, régimen evaluado o evaluación gammonNet ordinaria: una fila por opción, en el orden no doblar, doblar/tomar, doblar/pasar, con su equidad en el referencial de la posición y su diferencia respecto a la mejor opción. El orden nunca cambia, al contrario que la lista de jugadas: las tres opciones tienen nombre, así que se lee el nombre, no el rango. La mejor se reconoce por su realce y por su celda de diferencia dejada vacía. Cuando el cubo ya se ha girado, las opciones se leen no redoblar, redoblar/tomar, redoblar/pasar.

Una última fila da el veredicto. Toma cuatro valores: no doblar, doblar, tomar, doblar, pasar y demasiado bueno para doblar, este último cuando jugar la posición rinde más que cobrar el punto: doblar sería entonces un error por la razón inversa a la del simple no doblar. Es también el único lugar donde el panel dice que no hay veredicto, en lugar de dejar creer que hay un cálculo en curso:

  • sin decisión — el régimen no tiene derecho a ella; el veredicto de cubo nunca se estima (véase el distintivo estimado);

  • no evaluable en este marcador — el motor rechaza la posición, típicamente un marcador fuera del horizonte de la tabla de equidad de match, es decir un bando a más de 64 puntos por hacer;

  • cubo adversario y cubo muerto (Crawford) — el cubo no puede girarse. Las equidades siguen mostrándose, a título indicativo, pero ninguna opción lleva diferencia: un error es lo que cuesta una elección, y no hay elección.

En money game, las reglas Jacoby y Beaver activas en la posición aparecen bajo la tabla del cubo, en pequeñas insignias junto al veredicto que modifican: el veredicto «no doblar» de una posición bajo la regla Jacoby no es el mismo cálculo que sin ella, y nada más en pantalla lo indicaba.

Una tercera insignia, Cubo máx., aparece cuando el identificador de origen limita el cubo — tanto a un marcador de partido como en money game. Esa no describe el cálculo mostrado encima: el evaluador integrado no modela un techo, así que el veredicto es el de un cubo libre. Precisamente por eso está la insignia: un cubo limitado es la única razón visible por la que blunderDB y eXtreme Gammon pueden anunciar dos veredictos distintos sobre la misma posición.

El distintivo de régimen, la profundidad de evaluación, el enlace al motor y la casilla Desafío forman una banda aparte, alineada a la derecha por encima de las tablas.

El jugador al tiro y la posición del cubo se editan directamente en el tablero, como en modo edición: hacer clic en el rectángulo bearoff/marcador de un jugador le da el tiro; hacer clic en el cubo lo hace rotar centrado → poseído abajo → poseído arriba (clic derecho en sentido inverso). El valor del cubo permanece fijado — en money game las equidades se expresan en unidades del cubo actual, solo cuenta su propietario. El análisis se recalcula de inmediato. En régimen estimado, el propio distintivo es clicable y abre directamente la pestaña Bearoff de la configuración; su información emergente explica por qué (veredicto de cubo no estimable, ADR-0009) y cómo ampliar el dominio exacto.

El marcador se edita también directamente en el tablero, como en modo edición: el clic izquierdo en el rectángulo del marcador de un jugador decrementa su número de puntos por hacer, el clic derecho lo incrementa. Salir del marcador money (-1, -1) editando un solo bando alinea automáticamente el otro bando con el mismo valor en lugar de dejar un marcador incoherente. En una posición de bearoff en régimen exacto, pasar de un marcador money a un marcador de match deja la probabilidad de victoria tal cual (una lectura en base, válida sea cual sea el referencial) pero conmuta la equidad y el veredicto de cubo mostrados a los del régimen evaluado — la tabla exacta, al ser money por construcción, no sabe responder a la pregunta planteada en el marcador. El distintivo pasa entonces a ser compuesto (« exacto (victoria) · evaluado (cubo) ») para decirlo explícitamente.

Los dados, por último, se editan de la misma manera, y son ellos los que deciden la pregunta planteada: con dados colocados se trata de una decisión de fichas (la lista de jugadas candidatas), sin dados de una decisión de cubo. Un clic izquierdo en un dado sube su valor (el 6 vuelve al 1), un clic derecho lo baja (el 1 vuelve al 6); hacer clic en un dado en un tablero que no tiene coloca dos de golpe — un solo dado no sería ni una decisión de fichas ni una decisión de cubo. Hacer clic en el rectángulo de un jugador retira los dados para plantear una pregunta de cubo, y el siguiente clic en un dado los vuelve a poner tal como estaban.

RETROCESO, o un doble clic fuera del tablero, borra la posición: tablero vacío, marcador money (-1, -1), sin dados colocados — valores propios del panel Eval, distintos de los usados en modo edición (7 en ambos lados, dados 3-1), para mantener la coherencia con lo que el panel muestra por defecto.

Matriz del cubo

Una decisión de cubo no es una propiedad del tablero. Las mismas fichas, el mismo recuento de pips, se doblan a 2-away/4-away y no se doblan a 4-away/2-away; quien ha aprendido la respuesta money ha aprendido una casilla de una cuadrícula. El panel Eval muestra la casilla que la posición lleva; la matriz del cubo muestra la cuadrícula entera.

El comando cm la abre sobre la posición mostrada. Cada casilla da el veredicto en un marcador: la fila es el número de puntos que aún necesita el jugador en turno, la columna el del adversario. Los cuatro veredictos se escriben ND (no doblar), DT (doblar, tomar), DP (doblar, pasar) y DB (demasiado bueno); una casilla que el motor rechaza lleva un signo de interrogación y dice por qué al pasar el ratón, que da además las tres equidades de la casilla. Se ofrecen tres longitudes de partido: 5, 7 y 9 puntos.

La casilla del marcador que la posición lleva realmente aparece enmarcada, y sus encabezados de fila y de columna subrayados: la lectura parte de ahí, «mi casilla, y lo que la rodea». Lo está en cuanto los dos marcadores away de la posición caben en la cuadrícula mostrada; cambiar de longitud la desplaza o la quita. Una posición money, la partida Crawford o un away más allá de la cuadrícula no señalan ninguna: no hay casilla que mostrar, y mostrar una aproximada sería falso.

El marcador de la posición se sustituye por el de cada casilla; su cubo se conserva. La cuadrícula responde a a qué marcador giraría este cubo, no a lo que haría una posición centrada. Es posterior a Crawford de principio a fin: durante la partida Crawford el cubo no está en juego, y una columna de «no puede doblar» no diría nada de la posición.

Cada casilla es una búsqueda propia. El motor tiene en cuenta el marcador — no juega la misma partida a 2-away que a 7-away —, así que una sola búsqueda releída a través de equidades de partido distintas sería falsa justo donde el marcador importa. La cuadrícula llega primero en 0-ply y se recalcula a la profundidad de visualización configurada cuando la ventana queda en reposo: la misma escalada que el resto del panel, para una cuadrícula de 9 puntos que cuesta alrededor de un segundo y medio.

La misma cuadrícula se calcula fuera de la interfaz, con el comando cubematrix de la línea de comandos.

Llevar una posición al panel Eval

El panel se abre por defecto en una posición de bearoff, pero el estudio parte la mayoría de las veces de una posición que ya se tiene a mano. Dos gestos la llevan allí:

  • Clic derecho en el tablero, en un panel de análisis o durante la navegación de una partida, y luego Evaluar esta posición: el panel Eval se abre directamente en esa posición, tal como se muestra. El menú contextual no aparece en el panel Eval ni en el panel de búsqueda, donde el botón derecho ya sirve para colocar las fichas del otro color.

  • CTRL-C y luego CTRL-V: copiar la posición desde el panel de análisis y pegarla después, una vez, en el panel Eval. El pegado acepta también un identificador venido de otra parte — un XGID (eXtreme Gammon, GNU Backgammon, otra instancia de blunderDB) o un OGID (OpenGammon): basta con que esté en el portapapeles.

  • El comando import XGID=… (o import OGID=…) para cuando el identificador no está en el portapapeles sino en un mensaje, en un foro leído en un terminal, o producido por un script. Es el mismo verbo que import a secas: sin argumento abre un selector de ficheros, con argumento lee el identificador. El camino es luego idéntico al del pegado — misma lectura, misma deduplicación, misma apertura de la posición importada.

Un OGID solo lleva una posición: ni evaluación, ni comentario. La posición llega por tanto sin análisis, exactamente como un XGID desnudo, y el evaluador integrado puede rellenar el hueco después.

En un OGID, la partida Crawford se reconoce por la C que sigue a la longitud del partido (7C): sin ella, un jugador a un punto de la meta está después de la Crawford.

El tablero del panel Eval es un borrador: la posición llega a él sin su identificador de base, de modo que ninguna modificación hecha aquí puede reescribir el registro del que procede. Todas las ediciones habituales del tablero siguen disponibles en él (fichas, cubo, dados, marcador), y la evaluación sigue cada modificación.

En sentido inverso, CTRL-C copia el tablero del panel Eval al portapapeles, con un XGID recalculado a partir de las fichas colocadas — y por tanto pegable directamente en eXtreme Gammon o en otra instancia de blunderDB. Solo viaja la posición: la evaluación mostrada por el panel no es un registro de la base y no acompaña a la copia.

Al salir del panel Eval, se restaura la posición consultada anteriormente: el borrador nunca se guarda por sí solo.

Cuando la posición es un bearoff puro (todas las fichas de ambos jugadores en su cuadrante) y no hay dados colocados, la decisión de cubo muestra, para el jugador al tiro:

  • en régimen exacto: las equidades money (cubeless, sin doblar, doblar/tomar, doblar/pasar) y el veredicto de cubo money (no doblar, doblar/tomar, doblar/pasar o demasiado bueno para doblar) — fuera del marcador de match, véase más arriba para el caso del marcador,

  • en régimen evaluado: las mismas equidades y el mismo veredicto de cuatro valores, pero jugados por gammonNet (búsqueda + modelo de cubo de Janowski) en lugar de leídos en una tabla — disponibles incluso en un marcador de match, lo que el régimen estimado nunca pudo ofrecer;

  • en régimen estimado: el veredicto de cubo, deliberadamente, no se muestra entonces — solo la probabilidad de victoria, en la tabla de hechos, acompañada de su margen de error, sigue disponible.

En cuanto hay dados colocados en una posición de carrera, esa decisión de cubo antes de la tirada desaparece — el tablero pide entonces una decisión de fichas, no de cubo — pero la probabilidad de victoria, por su parte, sigue siendo un hecho de la posición, no una decisión: se une a la fila antes de la tirada en cabeza de la lista de jugadas, junto al EPC, que permanece mostrado justo a la izquierda.

Un distintivo indica el régimen: exacto (valor leído en una base de datos two-sided), evaluado · <profundidad> (jugado por gammonNet — la profundidad mostrada es la que ha producido efectivamente la cifra mostrada), estimado ± margen o, en un marcador de match dentro del dominio exacto, exacto (victoria) · evaluado (cubo) — véase más arriba. El régimen exacto prevalece allí donde está disponible; si no, el régimen evaluado se muestra en cuanto termina de calcular, sustituyendo en el sitio al régimen estimado mostrado durante la espera. Véase Metodología e hipótesis del panel Eval para la definición precisa de los tres regímenes y de sus hipótesis.

Ampliar el dominio exacto. La tabla calculada en el primer arranque cubre 6 fichas por bando. Dos maneras de ir más allá, en la pestaña Bearoff de la configuración:

  • calcular una tabla de dos lados más amplia — hasta TS-06-15 si la máquina tiene memoria para ello. La pestaña indica el tamaño, la memoria y el tiempo en esta máquina antes de empezar, y el cálculo se pausa y se reanuda. Un cálculo cancelado deja un archivo .part que nunca se lee como una tabla;

  • indicar cualquier archivo .bd two-sided de gnubg. La base con el dominio más amplio prevalece automáticamente.

El tablero del panel es un borrador, y se recuerda. Salir del panel Eval y volver recupera la posición en la que se dejó, no el tablero de bearoff por defecto: este solo se sirve la primera vez que se abre el panel en una sesión. Enviar una posición de la base al panel prevalece sobre ese recuerdo, y RETROCESO devuelve el tablero por defecto en cualquier momento. Nada se guarda en la base por el camino: el borrador no tiene identidad de posición, y su evaluación se recalcula al llegar en lugar de transportarse.

Modo desafío. La casilla Desafío, en la banda de distintivos, activa un modo de entrenamiento: con cada modificación de la posición, los valores de tres zonas se ocultan (sustituidos por « ··· »); un clic en una zona revela solo esa zona. Sin dados, son la fila del jugador de abajo, la fila del jugador de arriba y la decisión de cubo — la fila Δ solo aparece una vez reveladas las dos filas de jugadores. El bloque de decisión conserva entonces sus tres filas: lo que desaparece son sus valores, su veredicto y el realce de la mejor opción, sin lo cual el ejercicio se resolvería buscando la fila en negrita. Con dados colocados en una posición de carrera, la fila EPC de cada jugador se oculta como antes, pero la tercera zona cubre entonces la fila antes de la tirada y la lista de jugadas juntas: como la lista está ordenada de la mejor jugada a la peor, revelarla parcialmente ya daría la respuesta. Con dados colocados fuera de una posición de carrera, esa misma zona única cubre por sí sola todo lo que el panel muestra. Así se puede entrenar a estimar el EPC de cada bando, y luego a pronunciarse sobre el cubo o sobre la jugada a realizar, antes de comprobar. El ajuste se memoriza.

Para cerrar el panel Eval, pulse CTRL-E o cambie a otra pestaña.

Metodología e hipótesis del panel Eval

Cada valor mostrado por el panel se basa en hipótesis precisas, enunciadas aquí exhaustivamente.

Dominio. La zona de carrera — probabilidad de victoria y veredicto de cubo — solo trata el bearoff puro: todas las fichas restantes de ambos jugadores en su cuadro interior. La posición se evalúa antes de la tirada; los dados puestos se ignoran.

Los bloques EPC, en cambio, van más lejos: un bando obtiene su EPC en cuanto su ficha más lejana cabe en la tabla de un lado cargada. Con la tabla predeterminada (seis puntos) es la antigua regla del cuadro; con una tabla de ocho puntos, calculada desde la pestaña Bearoff, un bando con una ficha en la 8 se trata como cualquier otro. Nada se extrapola: una ficha un punto demasiado lejos simplemente no tiene EPC, exactamente como una ficha en la 7 no lo tenía antes. Cuando la tabla que respondió no es la de seis puntos, su nombre aparece en la esquina del bloque de carrera («OS-08») — sin él se leería «seis» por defecto y se creería al bando enteramente en casa.

Bloques EPC (siempre exactos). El EPC, el número medio de tiradas y la desviación típica provienen de la distribución exacta del número de tiradas para sacar todas las fichas, leída en la base de un lado de GNUbg (6 a 10 puntos, 15 fichas, calculada en la máquina). EPC = tiradas medias × 49/6 (49/6 ≈ 8,167 es la media exacta de pips por tirada, dobles contados cuatro veces); wastage = EPC − pip count. La única idealización es el juego óptimo de un lado: cada jugador minimiza sus propias tiradas ignorando al adversario — es la definición estándar del EPC.

Probabilidad de victoria, régimen exacto. Lectura directa en la base two-sided disponible más amplia (TS-06-06 calculada en el primer arranque, archivo externo, o TS-06-11 calculada desde la pestaña Bearoff). Estas bases resultan de un análisis retrógrado completo bajo juego two-sided óptimo de ambos bandos: ninguna hipótesis adicional, error limitado a la cuantificación (< 0,002 %).

Probabilidad de victoria, régimen estimado. Fuera del dominio de la base: la probabilidad se obtiene convolucionando las dos distribuciones one-sided (el jugador al tiro gana si su número de tiradas es inferior o igual al del adversario) y aplicando luego una corrección polinómica fija, calibrada fuera de línea contra la base TS-06-11. Tres hipótesis:

  • independencia de los dos procesos de salida — estructural en carrera: sin contacto no hay ninguna interacción;

  • juego one-sided óptimo de ambos bandos — esta es la aproximación: en realidad el jugador que va detrás se desvía para jugar la varianza y el líder por seguridad. El efecto medido es un sesgo antisimétrico (la convolución exagera la ventaja del líder) que la corrección absorbe estadísticamente;

  • la corrección fue calibrada y validada sobre el dominio del oráculo (hasta 11 fichas por jugador). Error residual medido: desviación típica 0,05 %, percentil 99 0,17 %, máximo observado 0,9 % (en puntos de probabilidad de victoria). Más allá de 11 fichas por jugador, esta cota está extrapolada — la tendencia es monótona pero ningún oráculo la certifica.

Equidades y veredicto de cubo (solo régimen exacto). Las equidades mostradas son las del money game, sin Jacoby, en el referencial de la literatura del bearoff. En el dominio ≤ 11 fichas por jugador, los gammons son imposibles (cada bando ya ha sacado al menos 4 fichas): no es una aproximación. El veredicto (no doblar / doblar, tomar / doblar, pasar) se reconstruye exactamente a partir de las equidades almacenadas, según la regla de GNUbg, validada punto por punto contra su análisis.

Nota

Las equidades cubeful suponen un juego de cubo óptimo de ambos bandos hasta el final: los futuros redobles se valoran íntegramente (análisis retrógrado completo). En las carreras muy volátiles de final de partida, la cascada de redobles se come casi toda la ventaja del bando al tiro — las equidades « sin doblar » y « doblar/tomar » pueden entonces estar próximas a cero allí donde un motor como XG, cuyo modelo de cubo no valora esa cascada, muestra valores próximos al dead cube (por ejemplo, 2 fichas en el punto 3 contra 2 fichas en el punto 2: 62 % de victoria, D/T exacto +0,006 frente a +0,475 en XG). La decisión mostrada, en cambio, coincide con la de los motores.

Probabilidad de victoria y veredicto, régimen evaluado. Fuera del dominio exacto, la probabilidad de victoria procede de la salida bruta de gammonNet (búsqueda a 0 o 2 plies según el gesto, nunca leída en una tabla), y el veredicto de un « Decide » de Janowski aplicado a esa salida — la búsqueda juega la trayectoria en lugar de resumir una instantánea de ella, que es precisamente lo que el régimen estimado no podía hacer (véase más abajo) y permite, único de los tres regímenes junto con el exacto, un veredicto en un marcador de match.

Este régimen se ha medido, no solo supuesto, contra la tabla two-sided integrada (TestEvalMeasure, 4000 decisiones money muestreadas, parámetros canónicos 2 plies k=12): concordancia del veredicto money 93,4 % (3735/4000), desglosada por distancia al punto de toma de gammonNet — 61,1 % a menos del 1 % del punto de toma (la zona más sensible a un cara o cruz), 88,3 % entre el 1 y el 5 %, 91,5 % entre el 5 y el 10 %, 94,0 % entre el 10 y el 20 %, 94,4 % más allá. Diferencia de probabilidad de victoria: media 0,85 %, mediana 0,44 %, percentil 95 3,21 %, máximo 8,30 %. Diferencia de equidad cubeful: media 0,039, mediana 0,018, percentil 95 0,151, máximo 0,406. La forma es la esperada: lo esencial del desacuerdo se concentra exactamente en el punto de toma, donde dos métodos legítimamente distintos divergen más en una decisión ajustada — no un error difuso que costaría equidad en todas partes.

Esta medida se refiere a decisiones money, en carrera. El veredicto a un marcador de match — que solo este régimen sabe dar — y las posiciones de contacto no tienen medida publicada: lo anterior no se traslada a esos casos.

¿Por qué no más profundo que 2 plies? Porque la medida dice que no aporta nada. Una decisión de fichas cuesta 99 ms a 2 plies y 8,4 s a 3 plies en la misma máquina — ochenta y cinco veces más. Sobre cuarenta decisiones reales repetidas a ambas profundidades, la búsqueda más profunda cambió de opinión dos veces, y ambas el beneficio que se atribuía a sí misma valía como mucho 0,0005 de equidad normalizada: dos órdenes de magnitud por debajo de 0,020, el umbral a partir del cual eXtreme Gammon habla de error. Por decisión, todos los casos juntos, el beneficio es de 0,0000.

El ajuste no se ofrece, por tanto. No se trata de decir que 3 plies no valga nada en general, sino que sobre esta red, con el filtro canónico, no paga la espera de quien está delante de un panel. La medida es reproducible (TestThreePlyMeasure) y la conclusión se volverá a juzgar si la red cambia.

¿Por qué no existe el veredicto estimado? Lo que sigue se refiere específicamente al método por convolución (régimen estimado), no al régimen evaluado descrito arriba: la equidad cubeful es un problema de trayectoria (cuándo doblar) que ningún resumen estadístico de la posición captura — el mejor modelo estático medido deja un error residual (desviación típica 0,016 de equidad, máximo 0,20) que basta para invertir todas las decisiones ajustadas. Del mismo modo, la conversión del veredicto al marcador del match mediante una tabla de equidades de match se ha medido insuficiente (12 % de desacuerdos con el análisis 2-ply de GNUbg, con auténticos blunders). Como un veredicto falso mostrado con aplomo es peor que ningún veredicto, la convolución nunca ha tenido derecho a mostrar veredicto — es una búsqueda que juega la trayectoria, no un resumen estadístico, lo que rellena ese hueco.

Nota

Las bases de bearoff son tablas matemáticas inmutables. blunderDB las calcula él mismo, de forma idéntica a la herramienta makebearoff de GNUbg — byte a byte — en la pestaña Bearoff de la configuración o con blunderdb bearoff generate.

Panel Anki

El panel Anki (CTRL-K) permite estudiar posiciones mediante repetición espaciada utilizando el algoritmo FSRS. El usuario puede crear mazos a partir de colecciones o de resultados de búsqueda.

Creación de mazos: Haga clic en New Deck para crear un mazo a partir de una colección o de los resultados de búsqueda actuales. Los mazos basados en una búsqueda se sincronizan automáticamente al activar la pestaña Anki.

Un mazo de fichas de marcador. La tercera fuente, Fichas de marcador, no pide más que un nombre: blunderDB llena el mazo con los 36 marcadores no ordenados de 2 a 9 away, y la carta de un marcador es la ficha que muestra el ejercicio Marcadores — puntos de aceptación y valores de gammon, ambas caras. Ese mazo solo existe si usted lo crea: 36 cartas pendientes el primer día son una deuda de repaso, y se contrae a propósito. El botón de sincronización lo regenera.

Los dos sitios no hacen el mismo trabajo. El ejercicio Marcadores hace recuperar esos números contra el reloj y mide la velocidad; el mazo los hace durar en el tiempo y no mide nada de eso. Las dos historias quedan separadas: el registro del Entrenamiento ignora los repasos de Anki, y las estadísticas de Anki ignoran las sesiones de Entrenamiento.

Repaso: Seleccione un mazo y luego haga clic en Study (o haga doble clic en un mazo) para empezar a repasar las cartas pendientes. Cada carta muestra la posición correspondiente en el tablero. Evalúe su recuerdo con las teclas 1 (Repetir), 2 (Difícil), 3 (Bien) o 4 (Fácil). Pulse Esc para detenerse y volver a la lista de mazos.

Las decisiones de cubo hacen dos tarjetas, encadenadas. Una decisión de cubo son dos preguntas — «¿doblar?», luego «¿aceptar?» — y blunderDB siempre las ha guardado como dos posiciones. Un mazo que selecciona solo una mitad recibe la otra: la decisión se completa, no se amplía. Y cuando ambas vencen, la segunda viene inmediatamente después de la primera.

Cada una conserva su propia nota y su propio calendario: no son dos tiempos de una tarjeta, son dos tarjetas. El encadenamiento no adelanta ningún vencimiento — ordena las tarjetas ya vencidas, nada más. Como nacen juntas, vencen juntas la primera vez, y ahí es donde sirve.

Mostrar la respuesta: La carta plantea una pregunta — qué jugada jugar, o qué acción de cubo. Reflexione y luego pulse ESPACIO (o haga clic en la zona oculta) para desvelar la respuesta: el análisis registrado de la posición, tal como lo presenta la pestaña Análisis. Aparece bajo los botones de evaluación, que permanecen en su sitio y al alcance. Hacer clic en una jugada de la lista la muestra en el tablero.

Nada le obliga a desvelar la respuesta para evaluar: si está seguro, las teclas 1 a 4 siguen activas. La respuesta vuelve a ocultarse en la carta siguiente, pero no si simplemente cambia de pestaña — vaya a consultar el panel Eval o el comentario de la posición, le estará esperando a la vuelta.

Una posición sin análisis registrado lo indica directamente, sin zona oculta.

Limitar la sesión. De forma predeterminada, una sesión de repaso recorre todas las cartas pendientes. Puede acotarla a un número de cartas, por mazo, en los Ajustes: marque Limitar la sesión e indique cuántas cartas debe servir una sesión. Cuando se alcanza el límite, la sesión se detiene y lo dice — el mensaje distingue «límite alcanzado, quedan tantas cartas pendientes» de una cola realmente agotada. Para seguir de todos modos, ahí está la práctica libre: sirve otras posiciones sin modificar nada del calendario.

Un límite de 0 no sirve ninguna carta: es un estado por derecho propio, útil para congelar un mazo mientras se prepara un torneo, y no es lo mismo que «sin límite». El botón Study queda entonces inactivo.

El límite se aplica a la sesión, no al día. Un mazo de blunderDB se construye sobre una colección o sobre una búsqueda: es un corpus finito, introducido en unas pocas sesiones, cuyo volumen diario ya está acotado por su tamaño. Un tope diario nunca llegaría a morder, o bien crearía un atraso en un mazo que cabía en una sola sesión.

Práctica libre (cram): El botón Cram, junto a Study, inicia una sesión de práctica libre: se le muestran posiciones aleatorias del mazo sin tener en cuenta el calendario FSRS. Este modo nunca modifica el plan de repetición espaciada — ideal para calentar antes de un torneo o repasar intensamente un mazo temático sin alterar su orden. Una etiqueta Cram reemplaza el estado de la carta y un botón Siguiente (teclas 1 a 4) recorre las posiciones. Esc vuelve a la lista sin guardar una sesión interrumpida.

Apartar una tarjeta, sin calificarla. Durante un repaso, un clic derecho en la cabecera de la tarjeta ofrece tres gestos que la sacan de la sesión sin decir nada al planificador:

  • Suspender — la tarjeta conserva su programación y no vuelve a salir mientras esté suspendida. Es la manera de apartar una tarjeta equivocada, o aún no útil, sin perder el historial asociado.

  • Posponer — la tarjeta desaparece hasta el día siguiente. A diferencia de suspender, esto no dice nada de su valor: es para la que se acaba de ver en otro sitio, o que se prefiere no cruzar dos veces en una tarde.

  • Quitar — la tarjeta abandona el mazo, tras confirmación. La posición permanece en la base: un mazo es una lista de estudio sobre la biblioteca, nunca una copia de ella.

Ninguno de estos tres gestos registra una nota: una tarjeta apartada no es una tarjeta respondida, y no cuenta en el total de la sesión.

Registro de repasos. En los Ajustes de un mazo, el botón Registro de repasos muestra lo que se le dijo al planificador — fecha, posición, nota, estado, intervalo concedido — frente a lo que planea. Es el único sitio donde se ve una nota introducida por error. Allí no se corrige: la programación queda fuera de alcance, y esa regla es justamente lo que hace útil el registro — el pasado no se reescribe, pero se puede conocer.

Pausa/Reanudación: Puede interrumpir una sesión de repaso en cualquier momento con Esc. El botón cambia a Resume y muestra su progreso. Haga clic en él para retomar donde lo dejó.

Gestión de mazos: Use los botones de acción para renombrar, sincronizar, reiniciar o eliminar mazos (se pide confirmación para estas dos últimas acciones). Los parámetros FSRS (retención objetivo, intervalo máximo, aleatoriedad) pueden configurarse por mazo en los Ajustes (icono de engranaje).

Retención: el objetivo y la medida. La retención objetivo es su elección sobre el compromiso entre carga de trabajo y calidad del recuerdo: cuanto más alta, más se acortan los intervalos y más repasa. Frente a ella, los Ajustes muestran la retención medida sobre sus propios repasos — una información, nunca un mando: blunderDB no modifica su objetivo para perseguir su tasa de acierto. Por debajo de una veintena de repasos, la medida no se muestra: se leería como un hecho cuando sólo es ruido.

Cambiar la retención no es retroactivo: cada carta adopta el nuevo ritmo en su próximo repaso, y los vencimientos ya fijados no se mueven. El efecto es, por tanto, progresivo e invisible el mismo día.

El intervalo máximo acota el espaciado. Un mazo creado recientemente arranca en un año: una posición que el algoritmo aplazaría varios años ha abandonado el mazo sin que usted lo haya decidido, y su propio juego cambia más deprisa que eso. Los mazos más antiguos conservan el valor que tenían.

Panel Entrenamiento

El panel Anki repasa lo que se retiene; el panel Entrenamiento ejercita lo que se calcula, contra el reloj. Se abre con CTRL-J, con el botón de la barra de herramientas situado justo después de « Position aléatoire », o con la orden train. La ficha de marcador pertenece a ambos: se calcula aquí y se retiene en un mazo de fichas de marcador.

En reposo, el panel muestra el lanzador y el balance de las sesiones pasadas.

El lanzador

Tres opciones, y luego « Démarrer »:

  • el ejercicio — Scores, Pions (recuento), Bearoff, Évaluation o Décision;

  • la fuente de la pregunta, cuando el ejercicio tiene varias — Vivier (formas canónicas del ejercicio), Plateau (la posición tal cual está) o Base (una posición de la lista recorrida);

  • el límite por pregunta — ninguno, 15, 30 o 60 segundos.

La fuente elegida se recuerda para cada ejercicio, de una sesión a otra.

train scores, train pips, train bearoff, train evaluation y train decision abren el panel y arrancan directamente; train tp y train takepoint son sinónimos de train scores, train epc de train bearoff, train quiz de train decision.

Los cinco ejercicios

Scores sortea uno de los 36 marcadores no ordenados de 2 a 9 away y muestra una ficha de marcador: dos columnas — Vous (usted) y L’adversaire (el adversario) — y siete filas — el punto de aceptación con cubo 2 y luego con cubo 4, cada uno en carrera larga y en la última tirada, y después el valor del gammon con los cubos 1, 2 y 4.

Cada columna solo lleva las casillas que las tablas de referencia — las que muestran las órdenes tp2_live, tp2_last, tp4_live, tp4_last, gv1, gv2 y gv4 — definen para su cara: tres números en 2a-2a, catorce como máximo, y una sola columna con marcador igualado. Una fila que ninguna de las dos caras define no aparece en la ficha, así que no hay ninguna casilla « n/a » que adivinar. Ambas caras están ahí porque una decisión de cubo con marcador necesita las dos: el punto de aceptación corregido combina los valores de gammon de ambos jugadores, y es el punto de aceptación del adversario el que dice si su doble pasa.

Pions (pips) pide el recuento de pips de ambos bandos. El pipcount del tablero queda oculto mientras la pregunta está abierta; « Révéler » lo muestra — incluso si usted había ocultado el pipcount con p, pues de lo contrario la respuesta quedaría invisible y el ejercicio no se podría verificar. Es una máscara y no un ajuste: su propia elección no se modifica y vuelve a mandar en la pregunta siguiente. La fuente Plateau plantea una pregunta sobre la posición mostrada, y solo una; la fuente Base saca una posición nueva en cada pregunta y la lleva al tablero.

Bearoff pide el EPC de ambos bandos — el recuento de fichas efectivo, el que añade al pipcount el desperdicio de las fichas que salen con puntos de sobra. Es el dominio donde el motor es exacto, y aquel donde el EPC se distingue de verdad del recuento de fichas.

Cada pregunta se genera: el motor parte de una semilla y juega algunas tiradas, y la instantánea es lo que se le plantea. Una colocación al azar no tendría los huecos, las pilas bajas ni las asimetrías de un bearoff real. La semilla viene del Vivier (una entrada en casa completada, luego de cero a diez medias jugadas), del Plateau (la posición mostrada, luego de una a cuatro medias jugadas — nunca cero, puesto que acaba de verla) o de la Base (una posición de la lista recorrida, tal cual: ya es real).

El dominio del ejercicio: ambos bandos enteramente en su casa, de 4 a 15 fichas por bando y el resto retiradas, cubo en el centro, partida de dinero. Una semilla que no encaje se rechaza nombrándolo, y no arranca nada — ninguna adaptación silenciosa: seguir jugando hasta que se rompa el contacto le daría una posición que usted no ha elegido. Un tablero vacío es la excepción: la pregunta viene entonces del vivero, y el panel dice por qué.

El ejercicio necesita la tabla de bearoff a un lado; mientras se genera en segundo plano (véase Configuración), lo dice en lugar de plantear una pregunta sin respuesta.

Évaluation pregunta cuánto vale una posición: la probabilidad de ganar del jugador en turno, en porcentaje, y la acción de cubo — Pas de double, Double, prend o Double, passe. Son los dos números que muestra el panel Eval, preguntados antes de mostrarse. El dominio es cualquier posición: una carrera igual que una posición de contacto, en partida por dinero.

Como en Bearoff, la pregunta se genera: la semilla viene del Vivier (una posición en la que el contacto acaba de romperse, y después de cero a diez medias jugadas del motor), del Plateau (la posición mostrada, y después de una a cuatro medias jugadas; la pregunta se plantea en partida por dinero, con el cubo en el centro, sea cual sea el marcador de la semilla) o de la Base (una posición de la lista recorrida, tal cual). Una posición de la base solo sirve si es una decisión de cubo en partida por dinero — sin dados, con el cubo en el centro o en manos del jugador en turno —; si no, el sorteo pasa a la siguiente, y cuando ninguna sirve, el ejercicio lo dice. Un tablero que no es una posición de partida — sin quince fichas por bando, o una partida terminada — se rechaza diciéndolo; con un tablero vacío la pregunta viene del vivero.

La verdad es la del motor: la base de bearoff de dos bandos cuando la posición figura en ella, gammonNet a su profundidad canónica en todos los demás casos, y el panel dice cuál ha respondido. Nada se estima: una posición que el motor no evalúa no se plantea.

Décision plantea una decisión ya analizada: una posición de la lista recorrida — su única fuente — con la decisión que lleva, jugada de fichas o acción de cubo, y juzga el análisis guardado. Una posición sin análisis no plantea pregunta, y una posición ya planteada no vuelve en la sesión; cuando la lista se agota, el panel lo dice. Sin base abierta, o sin posición analizada en la lista, el ejercicio se niega diciendo por qué, y nada arranca.

Mientras una pregunta de Évaluation o de Décision espera su respuesta, el panel Análisis queda tapado: lleva la respuesta.

Responder

El modo de respuesta es una propiedad del ejercicio, nunca un ajuste: lo que se cuenta o se recita se declara, lo que se estima se escribe — porque ahí, el tamaño del error es la lección.

Scores y Pions se declaran: usted calcula de cabeza, hace clic en « Révéler », y aparece la verdad. Cada número es entonces correcto por omisión — hace clic en el que ha fallado para marcarlo como falta (Tab y luego Espacio hace el mismo gesto con el teclado), y un segundo clic anula la marca. No se escribe nada: un recuento de fichas o una casilla de tabla es correcta o falsa, y escribirla no enseña nada más que leerla.

Bearoff se escribe: usted escribe los dos EPC, « Valider » los juzga con medio punto de margen — la granularidad a la que el EPC cambia una decisión de carrera — y la verdad aparece junto a lo que ha escrito. Es la aplicación la que juzga, no hay nada que marcar. La desviación se registra con su signo: sobreestimar no es subestimar, y es el balance el que hace de ello una media.

Évaluation mezcla los dos gestos en una misma pregunta. La probabilidad de ganar se escribe y se juzga con cinco puntos de margen, desviación con signo incluida; la acción de cubo se elige — el clic retiene el botón sin juzgar nada, y « Valider » juzga ambos a la vez. El cubo no tiene tolerancia: solo es correcto el botón que el veredicto del motor hace correcto, y una posición demasiado buena para doblar se responde Pas de double. Intro en el campo lleva a la acción de cubo mientras no esté elegida, y después valida. Tras la respuesta, el panel muestra la verdad — el veredicto en cuatro resultados —, su fuente, y el EPC de ambos bandos cuando la posición tiene uno exacto; el EPC nunca se pregunta aquí, tiene su propio ejercicio. El diario cuenta los dos números por separado: se puede estimar bien una posición y leer mal su cubo.

Décision se elige. En una decisión de fichas, juegue el movimiento en el tablero: haga clic en el punto de origen y luego en el destino, o arrastre la ficha, una vez por dado. El tablero solo ofrece lo que se puede jugar — un clic que ningún movimiento legal permite no mueve nada. En el panel, « Annuler le pas » retrocede un dado, « Recommencer » restaura la posición tal como la plantea la pregunta (un doble clic fuera del tablero hace lo mismo), y « Valider », activo en cuanto el movimiento está completo, lo hace juzgar. El campo de notación también acepta el movimiento tecleado (13/7 8/7, la notación de la transcripción): los pasos se colocan en el tablero con cada pulsación, un campo enrojecido indica que un paso no es jugable, e INTRO valida el movimiento completo. Con el foco en el panel, RETROCESO deshace un paso, ESC reinicia el movimiento e INTRO lo valida. En una decisión de cubo, pulse Sin doblar, Doblar, aceptar o Doblar, pasar: el clic es la respuesta.

La corrección distingue tres desenlaces, y confundirlos mentiría. Una jugada ilegal no es una jugada mal elegida: es un error de reglas. Una jugada legal que el motor no clasificó no es un error de juicio: simplemente no tiene precio, y no cuesta nada. Una jugada clasificada cuesta lo que el análisis dice que cuesta, en milipuntos. Solo es correcta una jugada clasificada y sin coste; la mejor jugada se muestra en todos los casos.

El cronómetro arranca al mostrarse la pregunta y se detiene en « Révéler », en « Valider » o al pulsar una acción de cubo de Décision; la pregunta siguiente se prepara mientras usted responde, así que nunca se cronometra con la suya. Marcar las faltas tampoco se cronometra. Con un límite, una pregunta sin respuesta al vencimiento se revela sola y cuenta fuera de plazo: todos sus números son falsos, y su tiempo no entra en la mediana — no se mide una respuesta que no se ha dado. Una decisión fuera de plazo muestra la mejor jugada y no entra en el PR de la sesión.

« Suivante » registra la pregunta y plantea otra. La sesión no tiene una duración fijada: dura hasta « Terminer », que la escribe en el diario, o « Quitter », que la descarta. Todos los botones están en el panel; el tablero muestra la pregunta y su respuesta, no lleva ningún control.

Mientras una pregunta está planteada en el tablero, revelada o no, las teclas que recorren la lista no la hacen avanzar: la pregunta conserva el tablero hasta « Suivante », « Terminer » o « Quitter ».

El diario y el balance

Las sesiones terminadas se conservan en la propia base — así que siguen al archivo — y sin límite. En reposo, el panel muestra una línea por ejercicio: el número de sesiones, la tasa de fallos, el tiempo mediano y, a partir de diez sesiones, la tendencia, es decir la diferencia entre la tasa de fallos de las diez últimas sesiones y la de todas — negativa, usted progresa.

Para Décision, la línea da además el PR de la última sesión, calculado con la fórmula que las estadísticas aplican al juego real: 500 × error medio en equidad normalizada, sobre las decisiones juzgadas. Un PR de entrenamiento de 6 y un PR de partido de 6 miden lo mismo en la misma escala.

Al hacer clic en el nombre del ejercicio se despliega el detalle por tipo de número: « Point de prise 4 · dernier lancer, 6 / 9 ». Ese detalle es lo que da valor al diario, y cuenta por tipo y no por cara: la misma casilla de la misma tabla, vista de un lado o del otro, es una sola debilidad.

Panel de Metadatos

El panel Metadatos muestra la información general de la base de datos actual: nombre, descripción, número de posiciones, número de partidas y juegos, versión del esquema. Accesible mediante el comando meta.

También muestra, cuando existe, el origen de la base de datos — véase Distribuir una base de datos: origen y contraseña. Una base de datos corriente no muestra esa sección.

Distribuir una base de datos: origen y contraseña

Un profesor que distribuye una base de posiciones dispone de dos mecanismos, independientes entre sí, ambos opcionales y elegidos en el momento de la exportación: marcar el archivo con su origen y protegerlo con una contraseña.

Nota

Ninguno de los dos hace seguimiento de lo que ocurre con el archivo. blunderDB no registra nada del lado de quien recibe la base: abrir una base marcada es exactamente igual que abrir cualquier otra, y en ningún sitio queda constancia de quién la abrió, cuándo, ni de dónde procede su contenido.

Marcar una base de datos con su origen

La ventana de exportación cabe en una sola pantalla: el formulario y, sobre él, una barra de progreso durante la escritura. Se cierra sola al terminar y el resultado aparece en la barra de estado.

Tres puntos merecen atención:

  • La exportación afecta a las posiciones mostradas actualmente, no a toda la base. Tras una búsqueda solo se exportan los resultados: la ventana lo recuerda en la parte superior.

  • Una colección cuyas posiciones no estén todas en la selección llega truncada. Por eso la lista muestra, para cada colección, la parte cubierta («12/40») y la señala en rojo cuando es parcial.

  • Los torneos solo pueden exportarse junto con los partidos: sin ellos no existe el vínculo torneo–partido y el torneo llegaría vacío. La casilla permanece desactivada mientras no se marque «incluir los partidos».

Los campos Usuario, Descripción y Fecha describen el archivo producido; se rellenan previamente a partir de la base de origen. La casilla Mis filtros guardados es distinta de las demás: no exporta contenido, sino tus propias búsquedas guardadas, que no sirven de nada en la base de otra persona.

Al marcar Marcar este archivo con su origen aparecen dos campos:

  • Origen — qué es este archivo y de dónde viene, con tus palabras: «Clase de Jean Dupont — 12 de marzo de 2026». Este campo es obligatorio: mientras esté vacío, el botón de exportación permanece inactivo.

  • Nota, opcional — condiciones de uso, dirección de contacto, una petición de no redistribuir.

La marca se firma con tu identidad de emisor. Es por tanto inalterable e infalsificable: nadie puede modificarla ni fabricar una en tu nombre. En cambio, no es imborrable: el archivo distribuido es una base SQLite corriente y blunderDB es software libre. No impide nada: dice de dónde viene el archivo.

Identidad del emisor

Las marcas se firman con tu identidad de emisor, creada por sí sola la primera vez que marcas un archivo; no hay nada que configurar. Pertenece a una persona y no a una base de datos: todos tus archivos llevan la misma huella pública, con la forma A3F1-9C24-7B05-E1D8.

Puedes comunicar esa huella a tus destinatarios para que comprueben que un archivo procede realmente de ti. La identidad se traslada de un equipo a otro en un único archivo (extensión .bdbid), protegido si se desea por una frase de contraseña. Ese archivo permite firmar en tu nombre: no lo compartas.

En los ajustes (icono de rueda dentada de la barra de herramientas), la pestaña Identidad del emisor muestra tu nombre y tu huella, y ofrece Guardar identidad…, Cargar identidad… y Regenerar….

Advertencia

Regenerar no revoca nada. Una marca lleva incorporada la clave pública que la firmó: se verifica por sí sola para siempre. Si tu archivo de identidad se ha filtrado, quien lo posea podrá seguir firmando con tu huella antigua, y esas marcas seguirán siendo válidas.

Lo que te protege tras una filtración no es el software: es publicar tu nueva huella y desautorizar la antigua ante tus destinatarios.

La regeneración sobrescribe la clave actual; blunderDB ofrece guardarla antes de reemplazarla.

Proteger una base de datos con una contraseña

La contraseña se escribe oculta, tanto aquí como al abrir un archivo protegido; el icono con forma de ojo la muestra mientras se mantiene pulsado y vuelve a ocultarla al soltarlo.

Marcar Proteger este archivo con una contraseña produce un archivo con extensión .dbx, incluso si habías elegido un nombre en .db en la ventana de guardado, ya que esta se abre antes de pedir la contraseña. Para abrirlo, usa la apertura de base habitual: la ventana de selección acepta tanto .db como .dbx. blunderDB pide entonces la contraseña e instala al lado una base corriente; después no se pide nada más.

La ventana ofrece eliminar el archivo protegido una vez abierto: de lo contrario conservas el mismo contenido con dos nombres. La casilla no está marcada por omisión —el archivo protegido sigue siendo tuyo si piensas transmitirlo— y la eliminación solo se produce tras una apertura correcta.

Advertencia

La contraseña protege el transporte del archivo, no la base. Impide que un tercero abra un archivo olvidado en una carpeta de descargas o un adjunto reenviado por error. No protege frente a aquel a quien has dado la contraseña.

La contraseña se comprueba en cada apertura, incluso si el archivo ya se había abierto antes en ese equipo.

Técnicamente, la base se cifra con AES-256 en modo GCM, con una clave derivada de la contraseña mediante Argon2id (64 MiB de memoria, 3 pasadas, 4 hilos) y una sal aleatoria propia de cada archivo. El modo GCM autentica el conjunto: una contraseña errónea se detecta como tal, y también cualquier alteración del archivo cifrado; nunca se obtiene en silencio una base corrupta.

La cabecera del archivo protegido permanece en claro: su origen sigue siendo legible sin la contraseña.

Leer el origen de un archivo

En la aplicación, abre el archivo y muestra el panel Metadatos (comando meta). Aparece una sección Origen en la parte superior del panel, de solo lectura, que indica lo que se inscribió, por quién, cuándo, y el estado de la firma:

  • «✓ firma verificada — marcada por ti»: el archivo lleva tu marca, intacta;

  • «✓ firma verificada»: la marca está intacta y procede de otra clave; compara su huella con la que te haya comunicado el autor;

  • «⚠ firma no válida»: el documento ha sido modificado o falsificado.

Esta sección no aparece en una base de datos corriente.

En línea de comandos, blunderdb info --db archivo.db muestra el origen y el estado de la firma, sin escribir nunca en el archivo. El comando funciona también con un archivo protegido, sin la contraseña. Consulta CLI_USAGE.md para las opciones --watermark y --password de export, así como para identity y open.

Publicar una base para otros

Una base marcada se distribuye como cualquier archivo — correo, sitio personal, memoria USB. blunderDB no ofrece ningún servicio: ni repositorio, ni catálogo alojado, ni cuenta. Es consecuencia directa de su diseño: nunca se registra nada del lado de quien recibe un archivo, así que no habría nada que comunicar a un servicio, aunque existiera.

Lo que hace utilizable por otro una base publicada se reduce a cuatro campos, todos ya presentes:

  • Usuario — quién la constituyó, con el nombre que quiere ver citado.

  • Descripción — qué contiene la base, en una frase que quepa en una lista: «240 decisiones de cubo al marcador, comentadas, nivel intermedio».

  • Origen (de la marca de agua) — qué es este archivo y para quién se produjo. Es lo primero que el destinatario lee en el panel Metadatos.

  • Huella del emisor — publíquela junto al archivo, no dentro: comparándola el destinatario comprueba que el archivo viene de usted y no de alguien que ha tomado su nombre.

Una base publicada sin marca de agua sigue siendo perfectamente utilizable; simplemente es anónima, y el panel Metadatos no muestra entonces ninguna sección Origen.

Para dar a conocer una base, la categoría Show and tell de las discusiones del repositorio sirve de directorio: es una lista mantenida por quienes publican, no un servicio prestado por blunderDB. Anunciar una allí requiere el enlace, los cuatro campos anteriores y la huella.