Seguimos con más estrategia: Go

-

Después de adentrarnos en el apasionante mundo del ajedrez y de ver cómo jugar a éste online contra nuestros amigos, voy a hablaros de otro juego milenario, más aún que el ajedrez, el Go.

El Go es un juego de mesa por turnos de carácter estratégico. Según la Wikipedia:

Su nombre Go, como es conocido en occidente, es el que recibe en Japón, y su origen es incierto. El "cercado" es la traducción castellana, hecha por Ambrosio Wang An-po, pues wei quiere decir cercar, rodear o bloquear, y en este "juego de rodear" precisamente se trata de cercar o rodear territorios entre dos contricantes.


Si bien puede parecer un juego sencillo teniendo en cuenta que tan sólo cuenta con 6 reglas básicas, la complejidad que llega a alcanzar es tal que, al contrario que para el ajedrez, la IA más avanzada no es quien de vencer a un jugador avanzado de Go. Si queréis saber más acerca de la historia y el funcionamiento del juego, al final del post os dejo unos enlaces interesantes. Ahora me centraré en los programas de Go para linux, dejando a un lado los aspectos antes mencionados.

De entre todos los clientes de Go para linux los que más me han gustado son éstos:


GnuGo

Funciona tanto como cliente como motor de IA, de hecho los programas que citaré a continuación lo emplearán como rival en el juego individual. No tiene GUI, funciona en la consola, por lo que lo usaremos sólamente como motor de Go junto con un programa que haga de interfaz. Se encuentra en los repositorios oficiales de Ubuntu.



Quarry

En realidad Quarry es más que un juego de Go, es una colección de juegos de tablero que incluye:
Go, amazon y reversi. Aunque en este caso lo que nos interesa es el módulo de Go. El juego luce genial y se integra perfectamente en un escritorio gnome.


El problema principal de Quarry son los motores de IA, ya que sólo he sido capaz de utilizar gnugo, relegando a amazon y reversi al modo para dos jugadores. Además por sí sólo el programa no detecta gnugo, y es necesario añadirlo manualmente dentro del menú de Preferencias. Sencillamente vamos a la sección GTP Engines y añadimos gnuchess tal y como muestra la siguiente captura.


Otra cosa que hecho en falta es la posibilidad de jugar a través de internet, cosa que sí hacen otros programas, como los que siguen. Puede instalarse fácilmente desde los repositorios oficiales de Ubuntu.


qGo

Es un completo cliente que permite jugar contra gnugo o conectarse a IGS para jugar contra otros internautas. En mi caso, el usar librerías qt es un inconveniente porque rompe un poco la armonía estética de mi escritorio (que nadie se enfade). Aquí va una captura:



glGo

GlGo es el uno de los clientes que recomienda y mantiene Panda-net, los responsables del servidor de Go IGS, al que por cierto podremos conectarnos, al igual que ocurría con qgo. El juego luce fenomenal y funciona a las mil maravillas tanto contra gnugo (sin tener que configurar nada) como en red. A continuación os dejo unas capturas del juego en funcionamiento:


Observando una partida en IGS con tablero en 3D


Observando una partida en IGS con tablero en 2D

Instalación:

Simplemente nos bajamos el .deb o el .autopakage de la página de descargas siguiente:


Yo usé el paquete Debian, pero si queréis podéis probar el autopakage o directamente compilarlo. En principio debería instalar sin problemas. Pero lo cierto es que el juego tiene un defecto de traducción y algunas de las opciones de la barra de herramientas no muestra texto, aunque en sí es totalmente funcional.

Una vez instalado, por defecto no creará ningún lanzador en el menú, así que tendremos que añadirlo nosotros mismos. Para ello sencillamente ejectaremos el siguiente programa:

sudo gedit /usr/share/applications/glgo.desktop

luego introducimos el siguiente texto y guardamos.

[Desktop Entry]
Encoding=glGo
Name=Eboard
GenericName=Board Game GUI
Comment=Juego de Go en 2D y 3D con soporte para juego online
Exec=/usr/games/glGo
Icon=/usr/share/doc/glGo/html/images/gnugo_logo.jpg
Terminal=false
Type=Application
Version=0.2.0
Categories=Application;GTK;GNOME;Game;BoardGame;
StartupNotify=true
MimeType=application/x-go-sgf;text/sgf;text/x-sgf;

Para poner el tablero el tres dimensiones vamos a las opciones del juego y ponemos tipo de tablero OpenGL (3D), reiniciamos y listo. Para moverlo pulsamos Control y movemos el ratón para girar la cámara o movemos la rueda para hacer zoom, para movernos horizontal y verticalmente pulsamos Shift e igualmente movemos el ratón.

Enlaces:

Versión en pdf del libro
El Cercado, pionero del Go en castellano
Curso en pdf de la Asociación Americana de Go (en inglés)
Asociación española de Go
Página sobre Go con historia, software, material y enlaces
Escuela de Go (el nombre lo dice todo)
Web personal con mucha información y enlaces
Página web del servidor IGS

Seguir leyendo...

Ajedrez: adentrándonos en FICS

-

En el post anterior vimos cómo instalar los programas necesarios para jugar al ajedrez contra otro humano allén de los mares. Ahora es momento de explicar cómo movernos por FICS cual pez en el agua (dramatización).

Antes de nada, espero que ya estéis registrados en FICS puesto que es gratis y te permite servicios como almacenar tus partidas y estadísticas, mandarlas al correo o entrar en los rankings. A mi personalmente por lo que más me interesa es por poder guardar una partida sin terminar (por ejemplo si se hace tarde y hay que irse a la sobar) y, en menor medida, para hacer un seguimiento de mis partidas.

FICS tiene el inconveniente de que no deja registrarse bajo una cuenta de correo electrónico tipo hotmail, gmail y derivados


Tanto Jin como eboard tienen un funcionamiento muy similar y se basan en un tablero y una consola de comandos. En el tablero jugaremos, observaremos o analizaremos las partidas, mientras que en la consola haremos el resto de las cosas, esto es, crear, solicitar y unirse a partidas; guardarlas y borrarlas; hablar con otros usuarios, configurar nuestra cuenta, etc.

En realidad muchas de éstas acciones, las más frecuentes, son realizadas cómodamente mediante la interfaz gráfica (unirse a partidas, cancelarlas, hablar con otros usuarios, etc). Así que me centraré más en los comandos que deberemos realizar en la consola (que nadie se asuste, que son muy sencillitos).

Comandos FICS

La verdad es tuve que romperme la cabeza leyéndome la documentación de FICS para, finalmente,poder hacerme una chuletilla medianamente decente. Contiene los comandos a mi parecer más interesantes agrupados por categorías. Si os interesa aquí tenéis el enlace y una captura.



Chuleta comandos FICS



Si a alguien le interesa puedo subir el archivo odt original para su modificación



Apuntes acerca de las interfaces de Jin y eboard

Las diferencias en las interfaces son muy pequeñas:
  1. Jin te muestra a la derecha del tablero los movimientos realizados. Eboard, en cambio, lo muestra en una ventana accesible haciendo click en un pequeño icono con forma de lista en la esquina inferior derecha.
  2. Jin dispone de una ventana/panel que funciona a modo de mapa de las partidas a las que te puedes unir. Eboard muestra los anuncios de partidas, así como las partidas en juego (para poder observarlas), en ventanas independientes disponibles en Ventanas/Partidas en el servidor... y Ventanas/Anuncios en el servidor... respectivamente. La ventana Partidas en el cliente nos muestra todas las partiads que tenemos abiertas en este momento, tanto jugando como observando (incluidas aquellas contra la CPU).
  3. En ambos programas se chatea a través de la consola, pero eboard tiene un modo más cómodo de hacerlo: la barra de comandos tiene un botón a su izquierda que nos permite alternar entre el modo [cmd] (comandos) y el modo [chat]. Cuando nos encontremos en este último según tengamos a la vista una partida o un canal/privado mandará el mensaje a quien corresponda (equivale a los comandos say mensaje y tell #canal|usuario mensaje, respectivamente.

Voy a comentar también una serie de opciones que son interesantes a la hora de jugar online y que podemos activar fácilmente desde las preferencias de ambos programas:
  1. Avisar con un sonido cuando tu oponente haga un movimiento (si te tocó un lento o simplemente ya tienes pensada tu jugada, puedes aprovechar tu tiempo navegando o administrando tu sistema).
  2. Resaltar último movimiento (puede que cuando tu rival mueva ya no te acuerdes ni de a qué estabas jugando).
  3. Mostrar coordenadas (sólo eboard). Mejoraremos la apariencia del programa y nos resultará más fácil entender la lista de movimientos.

Enlaces relacionados
Artículo en Fentlinux también disponible en pdf

Seguir leyendo...

Ajedrez: tu Ubuntu VS El mundo

-

Hace unos días despertó mi gusto por un juego ancestral y por todos conocido, el ajedrez. Fue jugando contra un amigo en su flamante MacBook (de momento no consiguió convencerme para comprarme uno, aunque bien es cierto que el hardware me llama mucho pero... ). El caso es que jugamos unas partidas y me quedé con ganas, así que surgió la idea de jugar por Internet unas batallitas durante el no-verano (más conocido como resto del año).

Así que se me planteo un pequeño problema; siempre había oído hablar de que es muy fácil jugar al ajedrez por Internet, pero jamás me lo había propuesto. Además tenía que poder jugarse desde distintos sistemas operativos (Linux y Mac OS X, por lo menos). ¡Manos a la obra!

A modo de bricomanía esto es el "material" que necesitaba. Mejor dicho, éstas son las condiciones que debería satisfacer la salución:

  1. Disponible en Linux, Mac y puede que Windows.
  2. Posibilidad de jugar por Internet contra un amigo.
  3. Posibilidad de guardar la partida para continuarla más adelante.
  4. Software 100% libre y gratuito.

Con todo esto en mente navegué y navegué por muchas páginas hasta que descubrí FICS. FICS es uno de los muchos servidores (de hecho parte de sus siglas provienen del protocolo que utiliza, ICS, una variación del TELNET) de internet que disponibles. Pero a diferencia de otros es totalmente gratuito y dispone de muchos servicios como autoguardado de partidas, posibilidad de observar las partidas de otros, varios modos de juego, opción de enviar partidas a tu correo electrónico en formato pgn (para poder abrirlos con cualquier programa), etc. Pero una de las razones por las que me decidí por FICS es que puede utilizarse desde multitud de clientes y sistemas operativos.

¡Ya cumplimos el primer, el segundo y el tercer requisito!

Ahora era el momento de elegir los clientes, el mío Linux y el suyo Mac. Resultó bastante laborioso el mirar todos y cada uno de los programas (aspecto, características, licencia, etc...). Pero tras unas cuantas horas, ya tenía dos ganadores: Jin y eboard.

¡¡Ambos libres!! ¡Condición 4 superada! ¡TACHÁN!

Para Windows no hay que quitarle ojo a BabasChess


Jin
Es un programa realizado en Java, ésto le permite funcionar en los tres sistemas, que funciona exclusivamente como cliente de FICS. Tiene un aspecto resultón y las funcionalidades necesarias. Es el que yo elegí para Mac y Windows, pero además puede jugarse hasta desde un navegador web entrando en la página de FICS.


Para utilizarlo simplemente hay que descargarse los binarios para el sistema operativo pertinente, descomprimirlo y lanzar el ejecutable. Eso sí, es necesario tener instalado previamente el runtime de Java.

Eboard
Eboard es un maravilloso juego de ajedrez disponible para GNU/Linux. Básicamente es un cliente para varios motores de ajedrez (Inteligencias Artificiales, vaya) que nos va a permitir disputar emocionantes partidas contra nuestro ordenador. Pero además cuenta con una característica para mí fundamental, y no es otra que el juego en red.

Eboard nos permite jugar contra un amigo que también tenga eboard, conectándose ambos clientes directamente IP a IP. Además es posible conectarse a servidores de ajedrez ICS como FICS u otros, de forma que podremos jugar contra cientos de jugadores humanos de todo el mundo. El poder jugar de forma directa contra otro eboard me interesa porque tengo un familiar también usuario del sistema del pingünino con el que tengo unas partiditas pendientes.

La verdad es que sólo le veía un problema al programa, y no es otro que su aspecto. No sé, lo veía muy cutre, sobre todo las fichas y los tableros. Pero no os preocupéis que un servidor se ha dejado unas cuantas horas de su vida portando temas desde otros programas. Al final del post dejaré el enlace de descarga.

Antes:


Después:

Tema: Alpha Pieces on Wooden


Tema: Mark Pieces on Alpha


Instalación:

1. Instalamos el juego, los tableros y piezas extra, así como varios motores:


sudo aptitude install eboard eboard-extras-pack1 sjeng crafty fruit



El último, fruit, es opcional ya que no funciona con eboard, aunque sí con el juego de ajedrez que viene por defecto con Feisty, glChess


A mi no me creó ningún lanzador en el menú de aplicaciones, así que tuve que crearlo. Para que no paséis trabajo aquí os dejo el código para crearlo:


sudo gedit /usr/share/applications/eboard.desktop


Luego pegáis este texto, guardáis y listo:

[Desktop Entry]
Encoding=UTF-8
Name=Eboard
GenericName=Board Game GUI
Comment=Juega al ajedrez contra la IA u otro humano
Exec=eboard
Icon=/usr/share/glchess/glchess.svg
Terminal=false
Type=Application
Version=0.2.0
Categories=Application;GTK;GNOME;Game;BoardGame;
StartupNotify=true
MimeType=application/x-go-sgf;text/sgf;text/x-sgf;


2. Añadimos los nuevos sets a eboard:
  1. Descargar el archivo

    Sets para eboard


  2. Descomprir sobreescribiendo en /usr/share/games/eboard
  3. Seleccionamos el tema en Configuración/Piezas Dibujadas... Yo además activé la opción para que se mostraran las coordenadas en el tablero (queda mucho más cool).


Llegados a este punto ya tenemos nuestro eboard resultón y listo para la acción. Para iniciar una partida contra la CPU simplemente: Oponente/Jugar contra un motor... y seleccionamos el que queramos de entre los disponibles. Para jugar contra un amigo que también tenga eboard haremos click sobre Conectar a Otro eboard...


El motor GNUChess no es detectado correctamente por el programa. Creo que se debe a que ya forma parte del paquete gnome-games.


¿Qué necesitamos ahora? Respuesta: saber manejarnos por FICS. Pero eso será en el siguiente post.

Enlaces relacionados
Artículo en Fentlinux también disponible en pdf

Seguir leyendo...