domingo, 15 de mayo de 2016

What about chessboardjs.com?

Que es http://chessboardjs.com? Una rápida visita por el sitio, vemos que es una librería javascript (muy buena por cierto) para trabajar con posición de ajedrez, con la idea de integrarla en nuestras páginas web, o blogs...


¿Por qué le dedico un post en Java & Android? Cuando, a lo sumo es Javascript... Mi intención es hacer una aplicación en Android con problemas de ajedrez, y desde ese lugar, probablemente utilice parte de lo que ofrece esta librería. Aunque más no sea, la generación de forma estática de los diagramas de ajedrez, para las primeras versiones de la App....

O sea, podrías subir algunos ejercicios a una web donde tenga instalada esta librería, capturar las imágenes y subirlas a heroku u otro backend, para luego ser consumidas desde la aplicación android.

What about chessboardjs.com?

Una de las coas incómodas de blogspot, es que no es sencillo agregar librerías como  chessboardjs.com. Por lo cual, voy a instalar la librería en otro servidor a través de simple FTP


Comencemos

  • Descargarlos la librería de http://chessboardjs.com
  • La copiamos por FTP a un servidor propio
  • Editamos la página de Inicio
  • Listo!



Invocamos al index.html que está editado para que tome de ejemplo una posición de la apertura Ruy Lopez:


Que se genera el siguiente resultado:


Continuemos:

A continuación me interesa grabar algunas posiciones básicas, en la pagina también muestra la posibilidad que se permiten hacer tres diagramas, con lo que buscaré generarlos de esa manera




Armamos tres posiciones de Mate en 3 jugadas:
Javascript
   





HTML
   



Y el resultado es el siguiente, con los tres tableros:


http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v1/index_2.html


Para más ejemplos, agregué también las siguientes secuencias de Mate en 1, en 2, en 3 y en 4 jugadas:

http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v1/index_mate_1.html
http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v1/index_mate_2.html
http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v1/index_mate_3.html
http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v1/index_mate_4.html

Los ejemplos anteriores, utilizan en el HTML el Tag Base... o sea, acceden a la librería de forma remota (no la copio a mi hosting):

Observemos en mi hosting que esta "v1 - version 1" que son HTML sin imágenes, ni css, ni javascript... porque todo lo trae remoto el tag base:



Paréntesis: Instalación de chessboardjs y Tag HTML base

Observamos que los ejemplos están haciendo uso del tag base:
 <base href="http://chessboardjs.com/" />

Para los que no conocen el tag base, lo que hace es agregar a cada url el prefijo http://chessboardjs.com/

Si bien nos facilita el uso de la librería de chessboardjs.com, el inconveniente que nos trae es que si quisiéramos agregar un link interno dentro de nuestro sitio, también el tag base le agregaría el prefijo de chessboardjs.com y el link interno no funciona...

Entonces, veamos los links que son nuestra versión dos: sin el tag base de chessboardjs.com

http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v2/index_mate_1.html
http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v2/index_mate_2.html
http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v2/index_mate_3.html
http://mw000561.ferozo.com/pncn/chess/post_chessboardjs/v2/index_mate_4.html

Aprovechando que no tenemos un tag base, como se puede observar, agregamos un Menú de Navegación Internet por los distintos ejercidos de [ Mate en 1, Mate en 2,  Mate en 3,  Mate en 4 ]



Observemos en mi hosting que esta "v2 - version 2" que son HTML con imágenes, y css, y javascript:


Continuemos...

Lo positivo es que tenemos nuestros tres diagramas, que podemos recortarlos y convertirlos en tres gif para mostrar dentro de un Android.... Obviamente que lo ideal es tener una librería en Android que parsee los FEN de la misma manera que está haciendo este javascript  chessboardjs.com. Pero, en una primera versión trabajaremos sobre los Gifs

Para cerrar el post, compartimos las tres imágenes que buscábamos, Y para los curiosos ajedrecistas, también la solución de los Mate en tres:


Solution: 1. Dxd7+ Txd7 2. Cc7+ Txc7 3. Td8#



Solution: 1. Rxd5+ cxd5 2. Nd3+ exd3 3. f4#


Solution : 1. Rh5 Qxd7 2. Ng5+ Kh8 3. Rxh6#


En el proximo post, tomando estas imágenes, volveremos a realizar ejercicios de programación en Android ... que es lo que en realidad nos interesa,


Interesantes Chess Links

A continuación dejo algunos links interesantes sobre ajedrez, y chess engine. O sea, orientados a alguien (como yo) que quisiera explorar al menos como hacer algún tipo de software sobre ajedrez.... 

Ya se con un chess-engine integrado, o una colección de problemas que se pueda pares y utilizar desde una interfaz, los software open source.... etc.

http://www.sjeng.org/deepsjeng2.html
(Alguien que hizo un motor de ajedrez)

http://www.applepi.com/chesspuzzle/
(un widget para Mac que me gusta mucho)

(Alguien que hizo una GUI de Ajedrez y tiene links a otros similares)

https://chessprogramming.wikispaces.com/Extended+Position+Description
Blog de programación y del formato EPD (similar al FEN) que no sabía que existía

http://www.ajedrezdeataque.com/17%20Aprendizaje/1/Bloque1/Bloque1.htm
Ejercicios y colecciones de Ajedrez (mate en 1) que están buenos.... O sea que me gustan como ejercicios. La táctica en el ajedrez, da la oportunidad de mostrar la belleza del juego cuando los problemas están bien elegidos.

http://www.jinchess.com/
GUI escrito en Java que se conecta con los chess servers como ICC. Es open source y hay acceso al código fuente.

GNU  Chess:
Uno de los primeros Open Source chess engine, con fuerza de ELO 2500+, no tiene GUI aunque suele utilizarse con algunas de las populares, por ejemplo XBoard que también es open source
https://en.wikipedia.org/wiki/GNU_Chess
https://www.gnu.org/software/chess/manual/gnuchess.html
https://www.gnu.org/software/chess/manual/
https://www.gnu.org/software/chess/
http://www.gnu.org/software/xboard/
Duda: ¿Los podré instalar sobre una MAC?¿Que pasaría?¿Cuanto tiempo me llevaría?¿Que tan difícil podría ser? ... Este podría ser tema para otro post... dejamos planteadas las preguntas abiertas.

Interesante: (Tomado de la wikipedia)
https://en.wikipedia.org/wiki/Shane%27s_Chess_Information_Database
Scid on the go is a browser for Scid database files for Android.[9]
Y también la página de resources de SCID:
https://sourceforge.net/p/scid/wiki/GetResources/
(Por ejemplo fotos de jugadores, ELO, partidas, etc....)

Otros Posts:

http://con2peones.blogspot.com.ar/2012/03/los-makeros-tambien-jugamos-al-ajedrez.html

Interesante sobre algunos software de ajedrez en Mac

Próximos pasos

La idea es seguir buscando hacer la App en Android.
Pero con esta librería, se podría investigar como es el movimiento de jugadas a partir de la solución.







0 comentarios:

Publicar un comentario