COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

En esta oportunidad usaremos una libreria llamada python-chess para poder simular una partida de ajedrez y visualizaremos el tablero con ayuda de Flask.
1-Primero instalamos la libreria

pip install python-chess

2- Creamos nuestro archivo app.py e importamos las librerias flask.Flask, chess para crear nuestro tablero y su extension chess.svg para renderearla y poder visualizar nuestros movimientos

from flask import Flask
import chess
import chess.svg

3.Ahora lo clasico, creamos nuestra app y definimos la ruta.Luego creamos un tablero con chess.Board(), y para renderearlo primero creamos los squares, donde hay varios tipos pero en esta caso pondremos el tipo chess.H8, segundo lo rendereamos con chess.svg, definimos el tablero que ya lo creamos, el tipo de squares y el tamaño, y retornamos el board.

app = Flask(__name__)
@app.route('/chess')
def play():
	board = chess.Board()
	squares = board.attacks(chess.H8)
	board = chess.svg.board(board = board, 		 
        squares=squares, size = 400)
	return board

if __name__ == "__main__":
	app.run(debug=True)

4.Configuramos nuestro ambiente a modo de desarrollo(en cmd) con:

set FLASK_ENV=development

Inicializamos nuestra app con flask run
Ahora solo sera cuestion de darle refresh para poder visualizar los cambios

5.Ahora pasaremos a los movimientos de las fichas, debemos definir el atributo push_san en nuestro tablero y pasarle como string:

-La inicial de la ficha que quermos mover en ingles, si queremos mover un peon no debemos poner nada

N for knight or horse(caballo)
Nothing for pawn(peon)
R for rook(torre)
Q for queen(reina)
B for bishop(alfil)
K for king(rey)`

-La posicion a la que moveremos la ficha
Por ejemplo, si quiero mover mi caballo blanco a la casilla f3 debo hacer:

board.push_san("Nf3")

Lo cual se veria asi:

from flask import Flask 
import chess
import chess.svg
app = Flask(__name__)

@app.route('/chess')
def play():

	#N for knight or horse
	#Nothing for pawn
	#R for rook
	#Q for queen
	#B for bishop
	#K for king

	board = chess.Board()
	board.push_san("Nf3")
	squares = board.attacks(chess.H8)
	board = chess.svg.board(board = board, 
               squares=squares, size = 400)
	
	return board

if __name__ == "__main__":
	app.run(debug=True)
caba.JPG

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados