Hemen zaude: Hasiera Comunidad Documentación Recetas Jugar al ajedrez con GNU/Linux

Jugar al ajedrez con GNU/Linux

Si te dicen que "usando linux no puedes jugar en buho21", que sepas que no es cierto. Basta con tener instalado el Java de Sun (aptitude install sun-java5-bin) y a partir de ahí podrás jugar al ajedrez en buho21. Que sepas también que tienes motores como GNUChess (libre) o Crafty (non-free). El interfaz gráfico eboard nos permite jugar contra un motor o jugar en Internet; sabiendo la IP de un colega, eboard nos permite jugar contra él sin salir de casa. Y por último, con scid tenemos un equivalente de chessbase para aquellos que van de gran maestro.

Introducción

Existe un excelente artículo sobre las posibilidades de GNU/Linux: Ajedrez en Linux. Su lectura es muy recomendable, aunque aquí vamos a ver cuatro instrucciones rápidas para tener muy buen software de ajedrez en nuestro sistema.La gente de Linex se ocupa también del ajedrez, ésta es su lista de programas de ajedrez.

Por último, en este otro artículoartículo tenemos un repaso al software disponible y una serie de consejos útiles.

Es una pena que haya que depender de tantas cosas no libres (como crafty y el java de sun, etc), pero esto es lo que hay. De todos modos estos elementos no-libres sólo son necesarios si queremos andar al máximo nivel o usar cosas java. gnuchess es un buen motor, al que un jugador medio puede ganar (según dicen). Jugando contra crafty, más vale que uses alguno de los trucos indicados en los enlaces antes expuestos.

eboard

La página de eboard está tenemos una breve guía de cómo usar los programas más populares.

eboard

De alguna manera es el sucesor de xboard. eboard está más refinado que xboard; para empezar, dispone de traducción al castellano. Para que funcione, depende de que tengamos instalado un motor (el programa que realmente piensa las jugadas). eboard se encarga de mostrarnos la jugada en el tablero. También sirve para jugar en Internet, en un servidor de ajedrez o contra un colega cuya dirección IP conocemos.

Instalar eboard

Basta con buscarlo con aptitude o synaptic. También necesitaremos un motor, libros de aperturas, etc. Todo podemos instalarlo con aptitude y/o synaptic. El motor libre más conocido es GNUChess. El motor más potente disponible es probablemente Crafty (non-free). Podemos instalarlo todo con esta orden:

# aptitude install eboard eboard-extras-pack1 gnuchess gnuchess-book crafty crafty-books-medium

Una vez instalado, probablemente tendremos que crear un icono para lanzarlo, o usar Alt+F2, escribir "eboard" y pulsar "Run"

Si queremos tener un libro de partidas mucho más tocho, tablas de finales, etc, el sitio FTP de Crafty nos ofrece la posibilidad de descargar no un book-medium, sino un "enormous" libro y muchas otras cosas.

Otro lugar muy interesante desde el que descargar partidas es pgnmentor y en general, una búsqueda en Google con "pgn download" nos dará una jartada de resultados.

Por último, TWIC (The Week In Chess) produce un archivo PGN con las mejores partidas celebradas a nivel internacional cada semana. Es el sitio ideal para tener la información más actualizada.

Jugando con eboard

Cuando se abre eboard, podemos ir al menú "Oponente". Aquí podemos escoger "Conectar a FICS". El tablero cambia por una consola; y nos muestra que estamos conectando con freechess.org ( freechess.org es uno de los mayores y más antiguos servidores de ajedrez, con más de 150.000 usuarios registrados).

Si quieres usar eboard para jugar en freechess.org (es para lo que está pensado), una vez que escribas "guest" en la línea "cmd", te aparecerá un mensaje en la consola diciendo que vas a ser por ejemplo "guestABCD" y que si estas de acuerdo pulses de nuevo "Enter". Cuando lo hagas, aparece un botón "Buscar tabla" a la derecha del tablero. Haz clic en él y aparecerán una lista de personas que quieren jugar un a partida. Selecciona la línea que te interese y haz clic en "Jugar seleccionada"

Para lanzar un reto, debemos escribir algo como "seek 5 0" y pulsar "Enter". Esto quiere decir que queremos jugar una partida a cinco minutos, sin incremento de tiempo tras cada jugada. "seek 10 30" indica que queremos jugar una partida a 10 minutos y que tras cada jugada nuestro tiempo se incrementa en 30 segundos.

Si lo que queremos es jugar contra alguien en particular, en vez de "seek" escribiremos "match", y más concretamente, algo como "match victima 5 0" ( y pulsamos enter), con lo que estamos diciendo que queremos jugar contra "victima" una partida de 5 minutos sin incrementos de tiempo.

También podemos especificar un rango de elo; "seek 5 0 1000-2000" (y pulsar enter) plantea una partida de cinco minutos, sin incrementos de tiempo, contra algún usuario que tenga un elo entre 1000 y 2000.

Si escribir esto te parece demasiado difícil, que sepas que freechess.org tiene también una aplicación java completamente gráfica (jin), que funciona de un modo similar a la de buho21.com y otros sitios. Basta con abrir el navegador, ir a freechess.org y hacer clic en el enlace "Play chess on the web for free". Esta aplicación también se puede descargar para usarla sin el navegador (recuerda que necesitas una máquina virtual de java para ejecutar estas aplicaciones).

Volviendo a eboard, además de jugar, podemos observar las partidas de otros. Si vamos al menú "Ventanas->partidas en el servidor", se te abrirá una nueva ventana con una lista de partidas. Podemos hacer clic en una de estas partidas y luego pulsar el botón "Observar", y así asistiremos al desarrollo de esa partida en el tablero de nuestra pantalla.

Si no queremos jugar en freechess.org, podemos ir a "Oponente->Conectar a otro servidor" y nos aparecerá una ventanita donde podemos meter el nombre del servidor que nos interese. Si lo que queremos es jugar con un colega, podemos ir a "Oponente->Conectar con otro eboard" y aparecerá una ventanita en la que tendremos que meter la IP de nuestro colega. Esta IP nos la puede pasar el colega por teléfono, chat, etc. Para estar seguro de cuál es tu dirección IP, puedes ir a un montón de sitios web; por ejemplo cualesmiip.com; nada más cargar la página veremos algo así como "Tu IP real es 164.121.218.36"; éste es el número que te tiene que dar tu colega. Y por supuesto, tu router y el de tu colega deben tener abierto el puerto 15451 (o el que se indique en la ventana de "Conectar con otro eboard")

eboard también puede jugar contra un motor, para hacerlo, vamos a "Oponente->Jugar contra un motor". Se abrirá un menú y podremos escoger el motor que queramos entre los que tengamos instalados: gnuchess, crafty, sjeng, phalanx...

También podemos reproducir partidas que tengamos cargadas: basta con ir a "Ventanas->Partidas en el cliente" y aparecerá una ventana donde podremos escoger la partida que queramos de entre una variedad de categorías. Esto suponiendo que tengamos alguna partida cargada. Si no tenemos ninguna partida cargada, podemos cargarla pulsando el botón "Cargar PGN", con lo que podremos indicar a eboard dónde tenemos un documento con nuestras partidas en formato PGN, probablemente exportadas desde chessbase.

scid

scid es el equivalente de chessbase

scid se puede considerar como el equivalente del famoso chessbase. Se trata de un gestor de bases de datos especializado en ajedrez. Puede leer formatos PNG y EPD, y puede usar Crafty como motor de análisis. Aunque nos aparecerá en inglés, para ponerlo en castellano basta con ir a "Options->Language->Español" Es libre y podemos instalarlo desde los repositorios de Debian usando aptitude o synaptic.


Sin embargo, hay que señalar que el paquete Debian de scid tiene desactivado el soporte para tablebases (finales de partida), de modo que si quieres usar esta característica, tendrás que compilar scid tú mismo. Esto se puede hacer con facilidad siguiendo estos pasos:

  • # aptitude purge scid (suponiendo que ya hayas instalado el paquete Debian)
  • # aptitude install tlc8.4-dev tk8.4-dev
  • $ wget http://prdownloads.sourceforge.net/scid/scid-3.6.1.tar.gz?download
  • $ tar zxvf scid-3.6.1.tar.gz
  • $ cd scid-3.6.1
  • $ ./configure
  • $ make
  • $ su
  • # make install
Con esto tendremos un ejecutable de scid con soporte para tablebases.

Lo que instalamos es el gestor de base de datos, pero sin partidas; hay que meterle los datos en formato PGN, por ejemplo exportando desde chessbase o símplemente descargando archivos PGN desde Internet; la mayoría de los torneos publican sus partidas en este formato. Como hemos dicho antes, el sitio FTP de Crafty y pgnmentor.com, entre otros sitios, tienen archivos enormes con innumerables partidas, listos para descargar.

Descargar y usar archivos de partidas PGN

scid permite búsquedas en archivos PGN, pero estos archivos los maneja como "sólo lectura" y por tanto es mejor crear una base de datos nueva en el formato nativo de scid. Para crear una base de datos nueva vamos al menú "Archivo->Nuevo", con esto se abre una ventana donde dar nombre a la base, acto seguido podemos ir a al menú "Herramientas" y seleccionar "Importar una partida PGN" o "Importar un archivo de partidas PGN"

Veamos un ejemplo que nos permitirá cargar el libro "enormous" de Crafty en una base de datos:

  • $ unzip enormous.zip (este archivo contiene casi millón y medio de partidas).
  • Abrimos scid, vamo a "Archivo->Nuevo". Damos nombre a la nueva base, que se activa automáticamente.
  • Vamos al menú "Herramientas-Importar archivo de partidas PGN" y le decimos que queremos cargar el archivo "enormous.pgn"
  • Hecho. Ya podemos usarla. La base se guardará en formato scid (extensión .si3) ccon el nombre que le hayamos dado (por ejemplo enormous). La próxima vez que arranquemos scid, tendremos que volver a cargarla, usando "Archivo->Abrir". Aparecerá la ventana en la que podremos localizar el archivo enormous.si3 y pulsar OK.

Buscar partidas

El formato de scid es más conveniente que el PGN entre otras cosas porque usa menos memoria; y además no es "sólo lectura", sino que podemos introducir nuestras modificaciones. En cualquier momento podemos tener abiertas hasta ocho bases de datos como enormous (nueve contando con la base clipbase, una base temporal en la que podemos juntar los resultados de diferentes búsquedas).

scid es un programa muy potente que puede gestionar bases con millones de partidas. Es capaz de hacer todas las funciones importantes de un programa comercial. Por ejemplo, en el menú "Buscar" tenemos la opción "Tablero actual", que nos permite buscar partidas que tengan una posición como la que tiene nuestra partida. Además dentro de esta búsqueda tenemos más opciones: Peones (busca partidas con el mismo material y los peones en las mismas casillas), Columnas (mismo material, peones en las mismas columnas) y Cualquiera (aquí lo único que coincide es el material, sin importar en qué casilla esté) Dispone de ventana de árbol, de finales, estadísticas, etc, etc.

Si queremos preparar una partida contra un oponente, podríamos usar el menú "Buscar->Encabezamiento" para buscar partidas en las que ese oponente haya jugado, quizá especificando que tiene que haber jugado con blancas. Para hacerlo, basta con escribir el nombre del oponente en la celda marcada "Blancas" Los resultados aparecen en la ventana "Lista de partidas". Lo que nos interesa es copiar esas partidas en la clipbase. Para eso, vamos al menú "Ventana->Intercambiador de bases de datos". Aparece una ventana con la base de datos que estamos usando y la clipbase; basta que arrastremos el icono de la base que usamos hasta dejarlo encima de la clipbase. Eso copiará los resultados de la búsqueda en la clipbase. Esto se puede repetir las veces que haga falta, copiando los resultados de cada búsqueda en la ventana de la clipbase. De este modo conseguimos hacernos una base de datos dedicada exclusivamente a nuestro futuro oponente. Acto seguido pasamos a trabajar exclusivamente con la clipbase (Archivo->Cambiar base de datos->Clipbase) y abrimos el árbol de variantes (Ventanas->Ventana de árbol) para examinar el repertorio de ese oponente cuando juega con blancas.

Como existe exclusivamente en la RAM, la clipbase solo puede contener 50.000 partidas; el resto de bases pueden contener muchas más. También por existir exclusivamente en RAM, el contenido de la clipbase se borra al apagar el sistema; si quieres conservar su contenido, pásalo a alguna otra base permanente.

Archivos ECO (aperturas)

scid trae su propio archivo ECO, llamado scid.eco que se carga automáticamente al arrancar. Si el archivo no se carga, o si queremos usar un archivo distinto, podemos ir al menú "Opciones->Cargar archivo ECO". Aparecerá la típica ventana para que localicemos el archivo que queramos y pulsemos OK.

Para tener el informe de una apertura concreta, hacemos el movimiento(s) en el tablero y a continuación vamos al menú "Herramientas->Informe de la apertura". Cuando termine de procesar la información, scid nos mostrará los resultados en una ventana ad-hoc.

Los códigos ECO estándar se componen de una letra entre la A y la E y dos números; por tanto hay 500 códigos ECO. Resulta que este sistema es bastante limitado y no se adapta bien al juego moderno. Para mejorar esto, scid añade al código ECO una segunda letra entre la a y la z, y un tercer numero a continuación.

Si vamos al menú "Ventanas->Buscador ECO", aparece una ventana mostrando un gráfico mostrando la frecuencia y efectividad de los códigos ECO en la base de datos que estés usando. El color más claro indica el número de victorias blancas; el medio indica el número de tablas. El color más oscuro indica el número de victorias negras.

Descargar y usar tablebases (finales)

Primero que nada, recordar que el paquete Debian de scid tiene desactivado el soporte de tablebases debido a razones éticas/legales; para poder usar las tablebases, tenemos que compilar scid nosotros mismos, siguiendo las instrucciones que hemos visto más arriba.

scid puede usar tablebases en el mismo formato Nalimov que usan muchos motores bien conocidos. Las tablebases Nalimov para 3, 4 y 5 piezas pueden ser usadas con scid. El sitio FTP de Crafty tiene las tablebases del propio Nalimov, quien se encarga de ponerlas ahí a medida que las crea. Estos archivos suelen tener sufijo .nbw (blancas) o .nbb (negras) y si además están comprimidos, llevan un segundo sufijo .emd. No hace falta descomprimirlas, al contrario: es mejor usarlas comprimidas.

Para descargar las tablebases probablemente lo mejor es usar un gestor de descargas como wget; esto es debido a que son multitud de archivos pequeños. A continuacion vemos un ejemplo para descargar y usar las tablebases de Nalimov.
  • $ wget -r -nH --cut-dirs=3 -P nalimov_tablebases ftp://ftp.cis.uab.edu/pub/hyatt/TB/
  • Tómalo con calma, que descargar todas las tablebases va a tardar mucho; a día de hoy son 7 gigas de descarga. Tu mejor opción es dejarlo descargando y marcharte a dormir, que ya es hora.
  • Si la descarga se interrumpe, repite la orden añadiendo un parámetro -c:
    $ wget -c -r -nH --cut-dirs=3 -P nalimov_tablebases ftp://ftp.cis.uab.edu/pub/hyatt/TB/
    Eso hará que la descarga continúe desde el punto en que se interrumpió. Puedes cambiar "nalimov_tablebases" por el nombre que quieras que tenga tu carpeta.
  • Cuando la descarga termine, tendrás una carpeta llamada nalimov_tablebases (o lo que hayas puesto detrás del parámetro -P) y dentro de ella una carpeta llamada 3-4-5 (con las tablebases para 3,4 y 5 piezas) y otra llamada tbs
  • Abre scid, ve al menú "Opciones->Directorio de las TB" Se abrirá una ventana donde podrás buscar la carpeta donde están las tablebases (3-4-5); puedes tener listadas hasta cuatro carpetas con tablebases.  Tienes que hacer clic en una cualquiera de las tablebases, de esta manera scid sabrá en qué directorio tiene que buscarlas. Una vez que pulses OK, scid tardará unos segundos en cargarlas, luego te mostrará una ventana diciendo que si quieres que la tablebase se cargue al arrancar scid, guardes la opción usando el menú "Opciones->Guardar opciones"

Seleccionar el motor

scid tiene su propio motor de análisis, que puede ser apropiado para novatos. Los que necesiten más que eso, pueden usar crafty como motor, yendo al menú "Herramientas->Motor de análisis#1->Crafty".

Defectos

Los defectos que se le achacan son dos: que al hacer una búsqueda no aparece una ventana con los resultados, sino que hay que ir al menú "Ventana->Listado de partidas"; y que no recuerda la última base que se usó, por lo que al abrir scid siempre hay que indicarle la(s) base(s) de datos con la(s) que queremos trabajar. 

Otros Programas

Vega

Vega es un gestor de torneos, tanto en el sistema suizo como liga, tanto individual como por equipos, y permite gestionar los resultados de cada miembro del equipo. Su autor es un árbitro italiano, por tanto está en italiano y en inglés. Está aprobado por la FIDE. La versión para windows es de pago; la de GNU/Linux es gratuita. Puede descargarse desde aquí

Una vez descargado, lo descomprimimos:

$ tar zxvf vegaprol.tar.gz

Y una vez descomprimido, basta con ejecutar Vega5 (individual) o VegaTeam5 (equipos).

$ cd vegapro
$ ./Vega5

Y entonces descubrimos que necesita glibc 2.4, que no está en nuestro sistema Etch. De modo que para hacerlo funcionar necesitas un sistema bien moderno, o trastear bastante. La librería de C es una parte fundamental del sistema; si no sabes bien lo que haces, mejor no toques nada. Si realmente necesitas este programa, instálalo en una máquina con Lenny.

Aparte de este inconveniente, Vega es capaz (entre otras muchas cosas) de:
  • Registrar a los jugadores
  • Hacer los emparejamientos de la siguiente ronda
  • Meter los resultados de la ronda
  • Preparar los rankings a partir de los resultados.

En el sistema suizo, es capaz de manejar hasta 999 jugadores en 20 rondas; en el de liga (round robin) puede manejar hasta 24 jugadores. Emparejamiento automático, manual, informe de resultados a la FIDE y hasta gestionar la web del torneo.

Polyglot

Como hemos visto, eboard y otros programas usan el protocolo xboard/winboard que ya es algo antiguo. Existe otro protocolo más moderno, el UCI (universal chess interface). Polyglot es capaz de traducir de un protocolo al otro, de este modo, podemos usar eboard y scid con un motor que sólo soporte el protocolo UCI. Está en el synaptic.




Iruzkinak (0)