Coiled motor de ajedrez de protocolo UCI.

Coiled motor de ajedrez de protocolo UCI escrito en C.

¿Te apetece una partida al ajedrez?

Coiled. Versión 1.1

Coiled es un IA de ajedrez de protocolo UCI escrito en C. Es un programa de línea de comandos (Aplicación de consola), que no está diseñado para usarse directamente, sino a través de una interfaz de usuario o GUI, con capacidad para tratar el protocolo UCI, como: Cute Chess, Tarrasch, Banksia, c-chess-cli, Arena, Fritz...

Su origen empezó hace un tiempo, cuando decidí actualizar el programa de AjedrezNet (AjedrezNet es una GUI que es capaz de gestionar motores de ajedrez de protocolo XBoard, realizado en vb6) a una versión más moderna, utilizando la plataforma Framework .Net, con mejor soporte para Windows Vista, Windows 7 y 10.

Reconozco que me ha costado y me cuesta manejar C, ya que no he programado nunca en este formato, sobre todo el trato con cadenas (lo que sería un string). Sin embargo, la sintaxis es parecida a PHP (sintaxis que sí conozco) y casi todo el programa son funciones matemáticas y poco trato con cadenas.

En agosto del 2013, Coiled fue publicado por primera vez para el usuario final. Desde entonces, he ido realizando actualizaciones, depurando errores, incrementando su fuerza de ELO, etc.

Actualmente Coiled es capaz de jugar a la variante Chess960, usar tablas de finales, soporta redes neuronales aunque hay algunas redes neuronales que no pueda cargar, sobre todo los de tamaño de 40MB.

Existen muchos motores de ajedrez hoy en día. Cada uno con su técnica o forma de juego diferente. Como las personas.

Para leer más sobre algunas de las técnicas utilizadas en Coiled, consulte la página Wiki de programación de ajedrez de Chess programming Coiled. (inglés)

Ahora Coiled es de código abierto.

Quiero aportar mi pequeño granito de arena a la comunidad de investigación, que tanto me ha aportado a mi en la creación de Coiled.

Espero no infligir nada, no ofender a nadie y de ser así hablar del tema.

Toda ayuda y mejora sera bien recibida.

También quiero decir que es mi primer proyecto de código abierto.

Características

    - Protocolo:

    UCI.

    - Código abierto:

    - Tipo de licencia:

    GNU General Public License v3.0.

    - Sistema operativo:

    Windows y Linux 32&64 bit.

    - Variante Chess960:

    Si.

    - Soporta redes neuronales:

    Si. (NNUE)

    - Tablas de finales:

    Si. Syzygy, Gaviota y Bitbases.

    - Libro de aperturas propio:

    Si, formato SqlIte.

    - Lenguaje de programación:

    C.

    - Ponder:

    No.

    - Multihilo:

    No.

    - ELO estimado:

    ± 3300 NNUE. ± 2675 Interna.

Técnicas utilizadas

Protocolo:

UCI.

Representación del tablero:

Mailbox. 8x8 unidimensional tipo entero.

Generador:

Sencillo.

Búsqueda:

Profundidad iterativa.

Ventana de aspiración.

PVS / Alpha-Beta.

Quiescence.

Reducciones y podas:

Distancia mate.

Movimiento nulo poda.

Reducciones de movimientos finales. (LMR)

Poda de movimientos finales. (LMP)

Beta Pruning or Static Null Move Pruning

Tabla de transposición poda.

Profundización iterativa reducción. (IIR)

See (Static Exchange Evaluation).

Extensiones:

Jaque.

Ordenación:

Movimiento Hash.

Profundización iterativa Interna. (IID)

MVV / LVA.

Killer heurístico.

Histórico heurístico.

Movimiento refutación.

See (Static Exchange Evaluation).

Evaluación:

Redes neuronales (NNUE).

o

Evaluación interna:

Estado de juego.

Material.

Posición de las piezas en el tablero.

Estructura de peones.

Pasado.

Aislado.

Retrasado.

Doblados.

Alfil

Pareja de alfiles.

Movilidad.

Caballo

Movilidad.

Torre

Fila abierta y semiabierta.

En séptima.

Movilidad.

Dama

Movilidad.

Seguridad rey.

Estructura de peones.

Ataques en conjunto.

Reconocimiento de nodo interno Finales:

En construcción

Otros:

Detección final del juego con las reglas de la FIDE.

Incluyendo triple repetición y la regla de 50 movimientos.

Tablas por material insuficiente.

Soporta redes neuronales:

Si. (Formato NNUE)

Tabla de transposición:

Si.

Ponder:

No.

Tabla de finales:

Si. Syzygy. Por Ronald de Man.

Si. Gaviota. Por Miguel Ballicora. *

Si. BitBases. Por daniel shawul.

Libro de aperturas:

Si. (Sqlite)

Chess960:

Si.

Lenguaje de programación:

C

Modo de juego:

Por tiempo:

Convencional.

Convencional e incremental.

Por movimiento.

Profundidad.

Mate.

Infinito.

ELO estimado:

± 3300 NNUE. ± 2675 Interna. ELO


* Formato de compresión .cp4 (LZMA).

Imágenes

Coiled Coiled Coiled Coiled Coiled Coiled

Requisitos mínimo

Windows & Linux

X86

X64

PROCESADOR

Intel Pentium Pro o Amd K7

Intel o Ahtlon con soporte MMX, SSE, SSE2

RAM

16MB Mínimo.

64MB Mínimo.

Novedades

11-11-2021 - versión 1.1

Añadido

- Compilación para linux versión de 32 y 64 bit.

- Opción PreventTimeout. Pare evitar timeout en partidas por tiempo.

 

Mejorado

- Detección de tecnología SSE2, SSE3, SSE4.1 y AVX2. Para NNUE. Con __builtin_cpu_supports

- Control de tiempo, inspirado en Ethereal. (Blitz)

- Incremento de ELO ± 3300 NNUE. Y ± 2600 Interno.

- Estabilidad.

 

Corregido

- Fallo en buffer en partidas largas de 180 jugadas en adelante. Realizando movimientos ilegales. Eliminación setbuf(stdout, NULL); setbuf(stdin, NULL); hPly = 0. Modificado el método SplitString. Test 960 partidas, 0 jugadas ilegales.

- Compilación en linux, definiciones múltiples... gcc 10.2.1.

- Syzygy, fallo en la comprobación del resultado. TB_LOSS y TB_WIN.

- Mejorado el acceso a las tablas de finales.

- Fallo en el movimiento refutacion. En almacenar y al recuperar.

- Errores menores.

 

Eliminado

- Comprobación de las tablas de finales en root.

Versiones anteriores

ELO ± 1725. Coiled 0.1a.

ELO ± 1925. Coiled 0.2b.

ELO ± 2500. Coiled 0.4.

ELO ± 2600. Coiled 0.5.

ELO ± 2600. Coiled 0.6.

ELO ± 3050. Coiled 0.7.

ELO ± 3150. Coiled 0.8.

ELO ± 3200. Coiled 0.9.

ELO ± 3250. Coiled 1.0.

Enlaces de interés

Interfaces o GUIs

Arena Chess GUI

The Tarrasch Chess GUI

Cute Chess

PyChess

WinBoard - XBoard

Torneos de motores

CCRL rating lists 40/4

CEGT rating lists 4/40 ( 2GHz)

Ajedrez por internet

Play Chess Online - Free Games

Ajedrez en línea gratis

Strategic Test Suite

STS Strategic Test Suite

Todo sobre las técnicas aplicables a un motor

Chess programming wiki

Enciclopedia de todos los motores de ajedrez

Chess Engine List

Foros de ajedrez - Hispanos

Foro SiliconChess - Programas de Ajedrez y Actualidad

Foro gratis : AjedreMas

Foros de ajedrez - Ingles

Foro de ajedrez

Foro de ajedrez

CCRL Public - CCRL Discussion Board

Foro de ajedrez

Winboard Forum

Página web hispanos. Torneos, Ranking, Información...

Motores de Ajedrez Hispanos