domingo, 8 de octubre de 2023

¿Cómo juego al ajedrez online desde la terminal de Ubuntu?

Recordando el "match telegráfico" de Ajedrez entre el Jockey Club de La Plata y el Manhattan Chess Club neoyorquino, Juan Perón explica cómo jugar ajedrez en línea desde la terminal de Ubuntu.

¡Estimados Maestros y Grandes Maestros!

Las características que hacen del Ajedrez el más respetado de los deportes, lo sustancian de las virtudes más universales. 

No solo es un juego de estrategia en el que se enfrentan dos jugadores, cada uno de los cuales tiene 16 piezas de valores diversos que pueden mover, siguiendo ciertas reglas, sobre un tablero dividido en cuadrados blancos y negros. El objetivo de "derrocar al Rey" propone la bondad de agilizar la mente, sino que la lid sobre el tablero bien puede consagrar la amistad entre sus muy temporales oponentes.

Ha sido a través de la historia que el más duradero de los kriegsspiel ha propuesto los mayores desafíos, y - por que no - divertimentos. Como tal, hubiese sido extraño que nuestro país escapase a estas visiones positivas. El Juego Ciencia se había popularizado en estas tierras ya desde la épocas coloniales, y una vez establecida la Nación no puede ignorarse la labor del ciertamente oligárquico Club del Progreso. A este le siguieron una buena cantidad de círculos y clubes ajedrecísticos de distintas proveniencias y montas, con fuerte jugadores. De todos ellos, sin duda el Club Argentino de Ajedrez (1905) y el vanguardista Círculo de Ajedrez de Buenos Aires (1916) contaron con temibles mesas. En 1922, la formalización de la unidad entre veintidós de estos círculos vio nacer a la Federación Argentina de Ajedrez (FADA), cuya labor se vio aureolada en la realización del Campeonato Mundial de Ajedrez de 1927, sede del legendario choque Capablanca-Alekhine.

Sin embargo, distintas acepciones fueron dando lugar un "cisma" federativo local. La solución a tal división no podía venir sino de mano del Justicialismo, lo que confluyó en lo que podríamos describir como una Segunda Era del Ajedrez Argentino, regada con merecidos apoyos y subvenciones gubernamentales. La Cámara de Diputados aprobó un subsidio anual para la Federación Argentina De Ajedrez (FADE) por $ 50.000, en tanto que el Club Argentino de Ajedrez adquirió su sede de Paraguay 1858 merced de un subsidio del Congreso de la Nación. 

Esto permitió elaborar una fuerte serie de torneos locales, culminados por encuentros internacionales auspiciados por la FIDE. El Torneo Internacional de Mar del Plata se constituyó en un gran certamen a equipos, con 18 Grandes Maestros de altísimo calibre. Fue ganado por Najdorf en gran forma, seguido por Ståhlberg, Eliskases, Pilnik, Euwe, Julio Bolbochán. Posteriormente se jugó el fortísimo Sextangular Buenos Aires/La Plata, coronando a Ståhlberg. 

El IV Torneo Memorial Roberto Grau fue algo más fuerte que el del año anterior, dominando Ståhlberg. Rossetto se impuso en el Campeonato Argentino.

Sin duda uno de los logros que permitieron las subvenciones fue maridar al ajedrez con los desarrollos tecnológicos. En este marco es de especial trascendencia el mítico match telegráfico Jockey Club de La Plata-Manhattan Chess Club de 1947 donde el equipo argentino integrado por Ståhlberg, Najdorf, Julio Bolbochán, Pilnik, Maderna, Michel, Rossetto, Guimard, García Baladó y Marcos Luckis dio por tierra con el seleccionado neoyorkino a través de terminales teletipo, en un épico 6½:3½.

Difícilmente este tipo de matchs ajedrecísticos "por télex" podrían haberse extendido como una Realidad Efectiva si no fuese por el alcance de las redes de datos en materia de la lúdica. Un sistema de tipo UNIX, donde un computador hace las veces de tablero, reloj, ujier y árbitro, nos permitió replicar e incluso superar esta propuesta, máxime si consideramos la posibilidad que ofrece el acceso público. Este logro se conoce como FICS, un servidor libre de ajedrez en la red de datos. 

Pues bien señores, hoy todo el mundo puede usar dicho programa desde múltiples avenidas, incluyendo la popular freechess.org, lo que permite jugar contra otros parroquianos electrónicos. Si bien FICS acepta perfectamente clientes gráficos libres (incluyendo al superclásico xboard, pychess o Gnome Chess), no escapa a lo interesante jugar "a la télex", usando una terminal enlazada a un sistema GNU con Linux.

Es que todo sistema GNU que se precie cuenca aún con un cliente capaz de enlazar a redes a través del viejo protocolo Telnet. Este podrá utilizarse para establecer el enlace que nos interesa.

Para ello abrimos una terminal con Ctrl+Alt+t y llamamos al servidor con el cliente de telnet. Podremos hacerlo ingresando el comando:

telnet freechess.org

Al establecer el enlace telemático, con la potencia de los baudios se nos presentará en pantalla el aviso de login al sistema ajedrecístico remoto FICS de freechess.org:

             _       __     __                             __      
            | |     / /__  / /________  ____ ___  ___     / /_____ 
            | | /| / / _ \/ / ___/ __ \/ __ `__ \/ _ \   / __/ __ \
            | |/ |/ /  __/ / /__/ /_/ / / / / / /  __/  / /_/ /_/ /
            |__/|__/\___/_/\___/\____/_/ /_/ /_/\___/   \__/\____/ 
       ^^__                  _____________________                 _  _  _ 
      /  - \_               / ____/  _/ ____/ ___/   _            | || || |
    <|    __<              / /_   / // /    \__ \   (_)           |_______|
    <|    \               / __/ _/ // /___ ___/ /  _              \__ ___ /
    <|     \             /_/   /___/\____//____/  (_)              |___|_|
    <|______\                                                      |_|___|
     _|____|_        ======================================        |___|_|
    (________)         freechess.org  ----  54.39.129.129         (_______)
    /________\       ======================================       /_______\ 
                       (Login screen designed by Alefith)

   ****** Welcome to the Free Internet Chess Server at freechess.org ******

Webpage: http://www.freechess.org
Head admin : mattuc   Complaints to : complaints@freechess.org
Server location: freechess.org   Server version : 1.25.20

      If you are not a registered player, enter guest or a unique ID.
             (If your return key does not work, use cntrl-J)

login:

Naturalmente si ya tuviésemos un usuario registrado podríamos ingresar con el nombre de usuario específico y una contraseña. Sin embargo, al tratarse de un ordenador público podremos perfectametne utilizar un nada pretencioso usuario “invitado”. Para ello debemos logueamos como "g" o "guest". 

Con este recibiremos un alias del tipo Guestxxxx podremos darnos de alta y acercarnos a un tablero para jugar partidas sin obtener puntaje (como quien va a la plaza a jugarle a los jubilados).

Una vez ingresado al servidor por Telnet, veremos el intérprete de comandos del servidor ajedrecístico FICS, indicado con prompt:

fics%

Ahora bien, existen varias maneras de localizar un oponente:

Al entrar a un servidor ajedrecísitico tan concurrido como freechess.org, normalmente deberían ir apareciendo las solicitudes de otros concurrentes invitados, que desea jugar en alguna modalidad de juego. Estas aparecerían según este formato:

GuestQRXX (++++) seeking 15 0 unrated standard ("play 13" to respond)

Esto indica que el jugador GuestQRXX quiere jugar una partida en el tablero 13. Para jugar contra este jugador, en el prompt fics% deberíamos ingresar el comando play 13.

Además: 

  • Podemos ver quién está en línea con el comando who, y usar el comando match con el nombre del jugador en línea que nos interesa.
  • Podremos usar el comando seek para buscar un jugador que ya conocemos.
  • Podremos usar el comando de chat general cshout y gritar en el servidor "Quiero jugar una partida del tipo...".

Nuestro oponente recibirá en pantalla nuestra solicitud y podrá aceptarla o rechazarla. De aceptarla, el servidor determinará al azar el color de piezas de cada contrincante. Cada uno recibirá un tablero inicial en su pantalla, y las Blancas podrán iniciar la partida. 

(Naturalmente, también nos podrían proponer una partida, la cual podremos aceptar o declinar).

Durante la partida a través FICS con Telnet, debemos mover las piezas en el tablero introduciendo varias órdenes o solicitudes. Para ello introducimos comandos en el prompt FICS%.

Cada vez que el oponente mueve, el servidor enviará la nueva posición del tablero a ambos oponentes. 

Los escaques del ajedrez están divididas en filas del tablero, que van de la a a la h (siendo la a el lado de Blancas y la h el lado de Negras), y columnas del tablero, que van de la 1 a la 8 (siendo la 1 el lado de Blancas y la 9 el de Negras). 

En la notación algebraica, cada escaque está definido por sus coordenadas fila-columna. En notación algebraica, cada pieza del ajedrez está representada por una letra propia, según su nombre en inglés:

Símbolo Pieza
k rey
q reina
b alfil
n caballo
r torre
p peón (aunque realmente no se usa la “p”).

Por este motivo, el tablero que representa la jugada se ilustria de esta manera (con símbolos ASCII):

        ---------------------------------
     8  |   | *R|   |   | *R|   | *K|   |
        |---+---+---+---+---+---+---+---|
     7  | *P|   |   | *B| *P| *P| *B| *P|
        |---+---+---+---+---+---+---+---|
     6  |   |   |   |   |   | *N| *P|   |
        |---+---+---+---+---+---+---+---|
     5  | *Q|   |   | *P|   |   | B |   |
        |---+---+---+---+---+---+---+---|
     4  |   |   |   |   |   | P |   |   |
        |---+---+---+---+---+---+---+---|
     3  |   |   | N | B | P |   |   |   |
        |---+---+---+---+---+---+---+---|
     2  | P | P |   |   | Q |   | P | P |
        |---+---+---+---+---+---+---+---|
     1  |   |   | R |   |   | R | K |   |
        ---------------------------------
          a   b   c   d   e   f   g   h

Según este ejemplo, las Blancas se disponen en la parte inferior del tablero, mientras que las Negras lo hacen en la parte superior. Los símbolos de las piezas aparecen en mayúsculas, mientras que el símbolo * denota que es una de las piezas Negras. El Rey de las Negras (*K) está en el escaque g8; el rey de las Blancas (K) está en el escaque g1, etcétera. Juegan las Negras.

Movidas

Podemos usar varias notaciones para mover las piezas. 

Aquellos jugadores que deseen emplear la Notación algebraica, pueden definir en su comando las piezas a mover y los escaques. Supongamos que las Negras desean mover su caballo (*N) del escaque f6 al escaque e4. La movida algebraica a ingresar sería Ne4 (o directamente ne4, pues el servidor de ajedrez es insensible a mayúsculas). Como normalmente siempre avanzan sobre una columna, para mover peones el intérprete es sensato, por lo cual no suele ser necesario consignar p para denotar al peón; basta con indicarle el escaque al cual queremos moverlo. Suponiendo que las Negras deciden mover el peón (*P) del escaque h7 al escaque h6, el comando sería h6 (aunque opcionalmente se puede especificar al peón, indicando Ph6). Para hacer enroque corto (lado del rey) usamos O-O, mientras que para enroque largo usamos O-O-O

Este método funciona bastante bien si somos ágiles con la notación algebraica inglesa. Es importante al principio elegir jugadas estándar en lugar de rápidas ("blitz"), pues puede llevarnos algunos segundos introducir la jugada y ser ágiles con la notación algebraica.

Sin embargo, debemos tener cuidado con aquellas jugadas que resultan ambiguas en esta notación. Durante el juego podría suceder que hubiesen varios peones, caballos, torres e incluso reinas en capacidad de desplazarse a un mismo escaque de destino. Ante tales casos no alcanzaría con ingresar simplemente Nd4, Rd4 o Qd4 pues se produciría una ambigüedad que el servidor estaría incapacitado de discernir correctamente (no distinguiría cuál de las piezas de dicho tipo es la que debe mover). Ante tal incidencia, debemos consignarle específicamente cuál de es la pieza a mover. Esto se hace de varias maneras:

  • Indicando las coordenadas de fila o columna de la pieza en cuestión (cualquiera que aclare la posición). Por ejemplo, en caso que las Negras tuviesen caballos en los escaques c2 y e2, ambas piezas podrían moverse al escaque d4. Por ello para definir el movimiento del caballo del escaques c2 a d4, conviene indicar Ncd4, donde la c aclara cuál de los caballos debe mover (en este caso, el caballo situado en la fila c). Si fuese el caso que ambos caballos se sitúan en la fila c, entonces se debe indicar la coordenada algebraica completa de la pieza interesada, ya sea N2d4 o bien N6d4.
  • Describir la coordenada algebraica completa para la movida, esto es: indicar el tipo de pieza, el escaque de origen y el escaque de destino; por ejemplo Nb6c4.

Captura de piezas

En notación algebraica, la captura de piezas se denota con un x (se pronuncia en su acepción algebraica como "por").

Supongamos que las Negras desean usar la torre de las Negras (R*) situada en b8 para comer el peón (P) de las Blancas situado en b2; en la notación algebraica inglesa tradicional la movida se escribe como Rxb2. Sin embargo, el servidor podría interpretar esto tanto como:

  1. una movida simple Rb2, y sabría que es una captura,
  2. RxP pero no sabría cuál escaque se quería decir (ya que en esta posición la torre puede capturar únicamente un peón).

Nuevamente podría suceder que en ciertas posiciones de tablero tanto el peón de una fila b y un alfil pudiesen moverse hacia un mismo escaque. En tal caso el intérprete confundiría el significado de la b (ya que puede referirse tanto al peón en la fila b o un alfil de Blancas, B). En tal caso, si ingresamos bc6 se produciría tal ambigüedad y el servidor se ve incapaz de saber cual de las dos piezas realizará la captura (si el peón en fila b o el alfil). Para subsanar esto debemos consignar qué pieza es la que consagrará la captura, indicandolo como pxc6.

Naturalmente de esto se desprende el otro caso que puede dar lugar a movida ambigua: el concierne a cuál pieza deseamos comer. 

Por ejemplo, Rxb4 ¿significa “Torre captura en escaque b4” o “torre captura alfil en la columna 4”? Para evitar tales malentendidos, debemos evitar especificar dicha captura como una movida algebraica simple desde un escaque a otro (por ejemplo, Rb4), y especificarla la movida de manera completa (indicando la pieza a mover, su posición inicial y la pieza situada en la posición de destino final, de esta manera: RxPb4

En cualquier caso, para evitarse problemas con las movidas ambiguas, también es posible utilizar la poco tradicional notación de computadora que os explicaré a continuación.

La manera más simple (aunque tal vez no la más ágil o utilizada) es usar la notación de computadora. Esta es puramente en base al sistema de coordenadas, y consconstan de la siguiente sintaxis:

escaque_de_origen-escaque_de_destino

Por ejemplo, en la posición de tablero indicada, para mover la torre de Negras desde b8 a b2 deberíamos ingresar simplemente b8-b2.

Como se ve, no se usan las letras identificadores de las piezas, simplemente los escaques, y por este motivo las movidas ingresadas en notación de computadora no pueden ser ambiguas, simplemente son más largas de ingresar y no son descriptivas.

Comandos de solicitudes

Durante la partida también será necesario introducir algunos comandos de solicitudes en el prompt FICS, que se utilizan para realizar determinadas solicitudes al oponente. El oponente debería aceptarlas para que ocurran. Estos comandos son:

Comando Función
abort Solicita cancelar el juego
adjourn pide guardar y detener la partida para poder seguirla más adelante
draw Solicita tablas (declarar empate)
flag finaliza la partida porque el oponente se quedó sin tiempo
moves pide al servidor FICS que le envíe la lista de movidas de la partida
pause solicita suspender temporalmente la partida, sin detenerla para continuarla mas adelante
promote configura la pieza a coronar cuando el peón llegue a coronación
refresh Presenta la posición actual del tablero
resign Otorga la victoria al oponente, y finaliza la partida
say Se comunica con el oponente actual (o el último)
switch solicita que su oponeten cambie de piezas (color)
takeback solicita que una o más movidas sea retrocedidas (cancela movidas)
unpause solicita que una partida en pausa continúe
withdraw cancela una solicitud que ha realizado (siempre que no hubiese sido concedida)

Podremos decirle algo al contrincante con el comando say. Naturalmente, también existen muchos más comandos que se pueden aprender a través del comando general de ayuda help.

Una vez dominado el entorno, podremos incluso jugar partidas con más de un contrincante, a la manera de un torneo de exhibición en simultáneas. Para ello deberíamos introducir el comando simuls.

Para cerrar la sesión, ingresa el comando logout

Logging you out.
                                         .::.
                               _()_      _::_
                      _O     _/____\_  _/____\_    _O   
 _  _  _    ^^__     / //\   \      /  \      /   / //\     ^^__    _  _  _ 
| || || |  /  - \_  {     }   \____/    \____/   {     }   /  - \_ | || || |
|_______|<|    __<   \___/    (____)    (____)    \___/  <|    __< |_______| 
|__ ___ |<|    \     (___)     |  |      |  |     (___)  <|    \   \__ ___ /
 |___|_| <|   _ \     |_|      |__|      |__|     _|_|   <|_    \   |___|_|
 |_|(_)| <|__(_)_\   /(_)\    /(_) \    (_)  \   (_)  \  <(_)____\ (_)|___|
 |_(___)  _|(___)_  ((___))  ((___)_)  (___)__) (___)__) (___)__|_(___)_|_| 
(_ _|_|_)(_ _|_|_ )( _|_|_ )(__|_|_ _) _|_|____)_|_|____)_|_|_ ___)|_|_____)
/_(_____)/_(_____)\/(_____)\/(_____)_\(_____)__(_____)__(_____)__(_____)___\
  /_____\  /_____\  /_____\  /_____\  /_____\  /_____\  /_____\  /_____\

                         (Logout screen by Alefith)

Thank you for using the Free Internet Chess server (http://www.freechess.org).

No hay comentarios:

Publicar un comentario