Saltar al contenido
56K

56K

Slow IT Notes – Just 4 Fun

Menú
Menú

Colocar fichas de Ajedrez usando imagemagick

Publicada el 14/11/202106/02/2023 por fanta

Si me da la gana me flipo con el ajedrez viendo gambito de dama. Me refiero a que estoy en mi derecho de fliparme con una serie y era necesario expresarlo.

Una vez dicho vamos con la mandanga del asunto.

Un tablero de ajedrez consta de 64 casillas de las que 32 son de un color y el resto de otro. En esta entrada voy a colocar lo necesario para poder crear scripts en bash que nos permitan dibujar partidas de ajedrez (todos los movimientos) y por tanto poder hacer un gif, poder sacar un png de cada movimiento, …

Solamente necesitaremos imagemagick. En Debian puede instalarse así:

 

# apt-get install imagemagick

 

Imagemagick es una suite de herramientas que nos permitirán trabajar gráficos desde la consola. Es ideal para scripting y por tanto buena cosa para no trabajar demasiado de forma repetitiva.

 

 

De modo que solamente necesitamos 2 texturas.

 

 

El tamaño de cada casilla es de 100×100 px . ¿El motivo? Simplemente me ha dado la gana y me parece más sencillo trabajar con estas medidas que con otras.

Aparte del tablero vamos a precisar de las piezas. Básicamente son estas que se pueden ver en la siguiente captura:

 

 

Nos podemos bajar todos los gráficos desde aquí: imgs-chess-tar.gz

Ahora al tema. vamos a posicionar todas las piezas en lo que viene siendo una partida normal al inicio. Para ello se usa composite (de la suite imagemagick).

Dejo aquí las instrucciones:

# Colocamos peones negros
composite peon-negras.png tablero.png -compose ATop -geometry +0+100 final.png
composite peon-negras.png final.png -compose ATop -geometry +100+100 final.png
composite peon-negras.png final.png -compose ATop -geometry +200+100 final.png
composite peon-negras.png final.png -compose ATop -geometry +300+100 final.png
composite peon-negras.png final.png -compose ATop -geometry +400+100 final.png
composite peon-negras.png final.png -compose ATop -geometry +500+100 final.png
composite peon-negras.png final.png -compose ATop -geometry +600+100 final.png
composite peon-negras.png final.png -compose ATop -geometry +700+100 final.png
sleep 1
# Colocamos peones blancos
composite peon-blancas.png final.png -compose ATop -geometry +0+600 final.png
composite peon-blancas.png final.png -compose ATop -geometry +100+600 final.png
composite peon-blancas.png final.png -compose ATop -geometry +200+600 final.png
composite peon-blancas.png final.png -compose ATop -geometry +300+600 final.png
composite peon-blancas.png final.png -compose ATop -geometry +400+600 final.png
composite peon-blancas.png final.png -compose ATop -geometry +500+600 final.png
composite peon-blancas.png final.png -compose ATop -geometry +600+600 final.png
composite peon-blancas.png final.png -compose ATop -geometry +700+600 final.png
sleep 1
# Colocamos torres negras
composite torre-negras.png final.png -compose ATop -geometry +0+0 final.png
composite torre-negras.png final.png -compose ATop -geometry +700+0 final.png
sleep 1
# Colocamos torres blancas
composite torre-blancas.png final.png -compose ATop -geometry +0+700 final.png
composite torre-blancas.png final.png -compose ATop -geometry +700+700 final.png
sleep 1
# Colocamos caballos negros
composite caballo-negras.png final.png -compose ATop -geometry +100+0 final.png
composite caballo-negras.png final.png -compose ATop -geometry +600+0 final.png
sleep 1
# Colocamos caballos blancos
composite caballo-blancas.png final.png -compose ATop -geometry +100+700 final.png
composite caballo-blancas.png final.png -compose ATop -geometry +600+700 final.png
sleep 1
# Colocamos alfiles negros
composite alfil-negras.png final.png -compose ATop -geometry +200+0 final.png
composite alfil-negras.png final.png -compose ATop -geometry +500+0 final.png
sleep 1
# Colocamos alfiles blancos
composite alfil-blancas.png final.png -compose ATop -geometry +200+700 final.png
composite alfil-blancas.png final.png -compose ATop -geometry +500+700 final.png
sleep 1
# Colocamos reina negra
composite reina-negra.png final.png -compose ATop -geometry +300+0 final.png
sleep 1
# Colocamos reina blanca
composite reina-blanca.png final.png -compose ATop -geometry +300+700 final.png
sleep 1
# Colocamos rey negro
composite rey-negro.png final.png -compose ATop -geometry +400+0 final.png
sleep 1
# Colocamos rey blanco
composite rey-blanco.png final.png -compose ATop -geometry +400+700 final.png

 

El sleep se lo podéis quitar. Eso generará un archivo llamado final.png en el que se ve esto:

 

 

Si quisiéramos mover un peón de por ejemplo a2 hasta a4. Tendríamos que colocar el peón en a4 (+0+400) y el color de la casilla superponerlo, es decir, usar la textura que tiene de tamaño 100×100. De ese modo estaría moviéndose.

Como puede verse la cosa no tiene mucho misterio. No obstante es maravilloso poder hacer estas cosas con imagemagick y un simple script en bash.

Saludos cordiales.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

fanta de naranja
💾 QEMU
💾 SOLARIS
💾 ESXi
💾 FREEBSD
💾 DEBIAN
💾 AMIGA
💾 SYSADMIN
💾 JUNOS
💾 IMPRIMIR
💾 MSDOS
💾 WINDOWS
💾 FAIRPHONE
💾 GAMING
💾 STREAMING
💾 REDHAT
💾 GRÁFICOS
💾 CACHARROS
💾 SONIDO
💾 NETWORKING
💾 ROCKY
💾 SUSE
💾 TMP
©2025 56K | Construido utilizando WordPress y Responsive Blogily tema por Superb