Skip to content

valdivieso01/shogi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Juego shogi desarrollado en python

Librerias utilizadas: numpy

Ejecucion

Descargar repositorio (rama develop) y desde consola correr el comando python main.py

Como jugar

Al ingresar comienza jugando el jugador negro(las piezas en la parte superior) Se ingresan dos valores que corresponden primero a la fila y luego la columna con un espacio entre los dos valores

ScreenShot ScreenShot

Luego el turno pasa automaticamente al jugador blanco (las piezas en la parte inferior) Se ingresan dos valores que corresponden primero a la fila y luego la columna con un espacio entre los dos valores

Cuando una de las piezas llega a las 3 filas del adversario esta pasa a ser una pieza promocionada

Para reingresar piezas el juego pregunta automaticamente si desea ingresar cuando es posible

Cuando el rey está en jaque el juego avisa por pantalla con un mensaje y cuadno uno de los reyes queda en jaque mate la partida termina

Funcionalidades implementadas:

El tablero se genera con las piezas de los jugadores donde en la parte superior se encuentran las piezas negras y en la inferior las blancas, comienza a mover el jugador negro.

El programa cuenta con un archivo main donde se instancian los objetos tablero y jugador (blanco y negro). Luego se implementa la logica de los turnos y se llama a las funciones de verificacionde promociones y verificaciond e jaque. los demas archivos se utilzian apra definir las clases y metodos para piezas, jugador y tablero.

Las piezas tienen definidas el color del jugador correspondiente, el estado de promocion (verdadero o falso) y un nombre utilziado para mostrar en el tablero.

Cuando se ingresa las posiciones de la pieza a mover y a donde (primero fila y separada por un espacio la columna), sobre esta se verifica que tipo de pieza es y en base a esto los movimientos que puede realizar (los movimientos con promocion estan realizados y el tablero verifica al llegar a las 3 ultimas casillas del rival para pasarla a estado promocionado. Tambien se detecta si al mover se come alguna pieza y de ser asi esta pasa a ser del otro jugador y la saca del tablero a una lista.

Existe una funcion imprimir tablero que es llamada cada vez que se realiza una jugada valida.

En cada turnos se verifica si el jugador tiene piezas en la lista de piezas muertas a mover, si encuentra pregunta si desea reincorporarla

Esta implemendato utilziando clases para definir tablero, jugadores y piezas. La clase pieza contiene metodos y variables que son heredadas a cada pieza en especial, pero cada pieza cuenta con movimientos individuales que le corresponden

La funciona para verificar jaque se implemento realizando un analisis en el tablero luego de cada jugada para verificar si en la siguiente jugada el rey puede ser comido, dentro de la funcion se modifica la variable de control para que las piezas no se muevan durante el control

La funcion jaque mate identifica el rey contrario al jugador que realizo la ultima jugada y controla que al hacer todos los movimientos posibles el rey siga en jaque.

La reincorporacion de piezas se realiza segun las reglas definidas por el juego

About

Juego shogi en python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages