Hoy

El núcleo y la capa visual

Hoy

Dónde estamos ahora
José Andrés Morales Linares
Madrid, España

En este momento no estoy reescribiendo la forma en que el motor piensa. Estoy trabajando para que ese pensamiento llegue a las personas. El primer paso consiste en conservar el núcleo de 2012 y construir, sobre él, una capa visual que permita utilizarlo en Linux, Windows, macOS y Android.

Si lo que buscas es un motor nuevo, basado en redes, eso pertenece a El siguiente nivel. Esta página describe la etapa actual: la de la interfaz. Quien calcula, detrás del tablero, sigue siendo el motor de entonces.

El núcleo que piensa

El motor está escrito en C. Una sola unidad de traducción, bitmma3.c, incluye el resto de los archivos. Habla los protocolos UCI y xboard / WinBoard. El binario actual se identifica como Mango AC 1.1. El núcleo de búsqueda, evaluación y representación permanece, en esencia, como era en 2012. No se trata de una reescritura del motor. Con el tiempo, sin embargo, se incorporó el protocolo UCI y se realizaron cambios en la integración, la compilación y la presentación.

El código del motor está disponible en GitHub, bajo la GNU GPL versión 3 o posterior. Se compila de forma independiente: mangoac en Linux y macOS, mangoac.exe en Windows. Los scripts de empaquetado de la interfaz no trasladan ese binario de un sistema a otro.

El interior del motor, los bitboards, la búsqueda alfa-beta, las tablas hash, el hacer y el deshacer de las jugadas, lo cuento en las entradas de este blog. Esta página no sustituye ese cuaderno. Solo afirma que ese motor es el que corre hoy detrás del tablero. Ese código lo escribí yo y lo seguiré manteniendo yo: el núcleo permanece obra humana.

La capa visual

La interfaz no forma parte del bucle interno del motor. Puede organizarse por capas. Se comunica únicamente mediante UCI: lanza un subproceso, lee las líneas info y aplica bestmove. Puede utilizar Mango AC Ajedrez o cualquier otro motor UCI. También se publica bajo la GNU GPL versión 3 o posterior.

En esta capa sí he aceptado ayuda de inteligencia artificial: para programar la interfaz, para las imágenes y para redactar este blog. El tablero puede tener esa ayuda. El que calcula, no.

Qué Hecho Estado
Linux Python 3, GTK 4 y libadwaita. Existe también un camino Qt (PySide6). Flatpak permite copiar el juego a otro sistema Linux. Se puede jugar y desarrollar
Windows y macOS La misma interfaz Qt. El empaquetado nativo se realiza con PyInstaller en cada sistema; el motor en C se deja junto al binario. Trabajo de esta etapa
Android El mismo destino: el núcleo de 2012 y una capa visual en el teléfono. Destino de esta etapa. Todavía no hay una aplicación publicada.

No afirmo que el paquete para Windows, el de macOS o una aplicación para Android se encuentren ya en las tiendas. Afirmo el rumbo: un solo núcleo, una capa visual y las cuatro plataformas. El repositorio de la interfaz todavía no es público. Cuando lo sea, lo pondré junto al del motor.

Qué puedes hacer hoy

En Linux puedes compilar el motor, instalar las dependencias de GTK o de Qt, y sentarte frente al tablero. En las demás plataformas el trabajo consiste en empaquetar con cuidado, probar y no presentar como listo aquello que todavía no arranca. Si dispones de un equipo con Windows, de un Mac o de un teléfono, y quieres probar una versión, escríbeme. Si lo que te interesa es el interior del motor, el cuaderno está en las entradas de este blog.

Puedes continuar el recorrido por las otras páginas del sitio: El proyecto, Software libre y El siguiente nivel.

Correo de contacto: comprasmangocomputer@gmail.com

Comentarios

Entradas populares de este blog

Mango AC Ajedrez

Cap. 18 - Hacer lo que hay que hacer

Cap. 2 - Seis campos y el tablero entero