diciembre 18, 2021

MG8000-Creación del programa de juego en Python

Una vez elegido el motor de juego, procedemos a la creación de un programa que haga enfrentarse a un jugador con la inteligencia artificial.

  1. Creamos el archivo en el que vamos a escribir nuestro programa:

2. Ahí escribiremos las primeras instrucciones ya vistas en la entrada «MG8000-Primeros pasos con Stockfish»:

3. Después de eso, indicaremos al jugador que la partida ya ha iniciado mediante una función «print», además también mostraremos el tablero con todas las piezas colocadas mediante una de las instrucciones de Stockfish:

4. A partir de eso, pediremos al jugador el primer movimiento mediante la función «input», la cuál convertiremos en una variable para poder interactuar con ella:

5. Una vez tengamos el movimiento, comprobaremos si es posible usando otra de las instrucciones que Stockfish nos trae. Recomendable también introducirlo en una variable para manejarlo con más facilidad. Después, diremos que nos lo de mediante un «print»:

6. Tras la comprobación solo hay dos posibilidades, que sea un movimiento posible (True) o que no sea posible (False), por lo tanto usaremos las sentencias «If» y «Else», tras las cuales escribiremos las condiciones para cada una:

7. Adentrándonos en la situación de que sea posible, mediante una instrucción diremos que se ejecute el movimiento. Tras eso, usaremos la instrucción que permite al juego identificar cuál sería la mejor respuesta, y eso lo introduciremos en una variable. Después de todo esto usaremos la instrucción que permite ejecutar un movimiento tras otro, para finalizar mostrando el tablero con las posiciones actuales:

8. Ahora hablaremos de la situación en la que el movimiento no es posible. Lo primero es informar al jugador de que ha hecho una jugada indebida, esto con un «print», tras lo cuál usaremos una función «input» para recibir un nuevo movimiento. En nuestro caso haremos que el jugador solo tenga dos oportunidades, es decir, veremos si el nuevo movimiento es posible o no, y si no lo es, la partida se anulará, lo cuál se hará escribiendo algo muy similar a lo usado para programar la verificación del primer movimiento (aunque esta es la primera versión del programa, esto último puede variar):

9. Actualmente tenemos un programa que nos permite hacer el primer movimiento y que el juego nos responda, para hacer a partir del segundo debemos copiar lo mismo a partir del primer «input», cambiando las instrucciones «stockfish.set.position([])» por «stockfish.make_moves_from_current_position()», además de los nombres de las variables:

Todo esto debajo de las partes antes explicadas.

10. Una vez hecho todo lo anterior, metemos todo la parte del “segundo movimiento” del programa en un bucle While, basándose en el comando “stockfish.get_fen_position”, que se puede realizar mientras haya piezas en el tablero.

11. Tras eso, usamos el comando “stockfish.get_evaluation()”, que nos permite ver lo cerca que se está de un JaqueMate, y después de eso, sacamos la información de sus respectivas listas y diccionarios con los comandos de la imagen, y una vez se cumplan las condiciones del Mate, rompemos el bucle.

12. Al final solo ponemos un mensaje para informar que la Máquina ha ganado (Se podría definir la del humano, pero como la máquina es invencible, no haría falta).

Y eso sería todo, el programa quedaría como:

Category : MAGNUS 8000

Deja una respuesta

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

Proudly powered by WordPress and Sweet Tech Theme