Motor de Ajedrez MiniRoque
Descripción
MiniRoque es un motor de ajedrez sencillo, diseñado para servir de referencia en competiciones entre motores más potentes y como base para el desarrollo de las nuevas versiones de Roque, su hermano mayor.
Ha sido desarrollado para ser un motor con todas las funciones mínimas que debería incorporar todo motor de ajedrez pero sin ninguna optimización de rendimiento o mejora que incremente su nivel de juego. Para la búsqueda del mejor movimiento a partir de la posición actual utiliza el algoritmo Alfa-Beta básico junto con búsqueda quiescente para tratar el efecto horizonte. En la evaluación de la posición en los nodos hoja del árbol de búsqueda utiliza una función simple, que principalmente considera la diferencia de material de ambos bandos y la ocupación de la zona central del tablero por las piezas.
Estas características hacen que su nivel de juego sea muy bajo, estimado en un Elo de 1600, realizando aperturas lentas (ya que carece de libro de aperturas) y con preferencia por el juego central. En el medio juego se comporta de una manera aceptable pero en los finales le cuesta avanzar peones a la línea de promoción y detectar de forma temprana un mate forzado, lo cual ocasiona partidas muy largas cuando juega contra motores débiles.
Dado que MiniRoque ha sido diseñado con las funciones mínimas necesarias para competir contra otros motores, carece de prestaciones más avanzadas como los modos de edición y análisis de posiciones, modo de aprendizaje, creación y utilización de libros de aperturas, búsqueda durante el tiempo del oponente (ponder), resignación o propuesta de tablas al adversario.
Características técnicas
En resumen, las características técnicas del motor MiniRoque son las siguientes:
Programado en lenguaje C.
Comunicación con la GUI mediante el protocolo xboard, versión 1, lo cual lo hace compatible con las GUIs de aplicaciones como xboard/WinBoard, Arena, ChessMaster, etc.
Representación del tablero mediante un vector de 64 enteros.
Generador de movimientos sencillo, basado en tablero de 8x8 (vector de 64 enteros) y con ordenación de movimientos mediante la técnica MVV/LVA.
Función de búsqueda basada en el algoritmo Alfa-Beta con búsqueda de la variante principal (PVS) y con búsqueda quiescente para tratar el efecto horizonte.
Función sencilla de evaluación de la posición (principalmente diferencia de material de ambos bandos y ocupación central del tablero por las piezas).
Detección del final de la partida aplicando las reglas de la FIDE, incluyendo triple repetición y la regla de los 50 movimientos.
Modos de juego: controlado por tiempo (convencional, incremental y tiempo fijo por movimiento) o por profundidad fija.
Elo estimado: ~1600.
Descargar
Accede a la sección de Descargas para obtener la versión más reciente de MiniRoque.