Se implementó el juego de ajedrez. Este cuenta con todas las piezas del juego y sus movimientos básicos respectivos.
Se agregó la captura de piezas, pero no se puede capturar al rey.
Con respecto a movimientos especiales, sólo se implementó la coronación del peón (no hay elección de pieza, se corona automáticamente en reina). No se implementó enroque ni captura al paso del peón.
Con respecto a condiciones de victoria, no se implementó jaque ni jaque mate, por lo tanto, el juego no tiene ganador.
Para compilar basta con escribir make ajedrez en la ubicación del Makefile
Cambios:
Makefile: Se añadió un target para compilar el ajedrez.
Piece.hs:
Se añadió removePiece para eliminar piezas de la lista de piezas.
Se añadió isInside para saber si una pieza esta dentro o fuera del tablero.
Se añadió playerAt para determinar al dueño de la pieza.
Se añadió addQueen para agregar una reina en el momento de la coronación del peón.
Chess.hs:
winner siempre entrega Nothing, así no hay ganadores.
El player0 comienza a jugar (piezas blancas)
Movimientos:
Se crearon 8 funciones genéricas de movimiento a lo largo de las 8 direcciones posibles. Estas funciones son utilizadas por alfiles, torres, reyes y reinas.
Se crearon 4 funciones de movimiento para los 8 movimientos máximos posibles del caballo.
Se crearon 2 funciones para todos los movimientos del peón (movimiento simple y doble, movimientos diagonales de captura).
Nota:
Debido a que las funciones de movimiento son difíciles de entender a primera vista, y de manera de facilitar la revisión, se agregaron comentarios bastante detallados en cada una de las funciones añadidas.
Datos personales:
Resumen:
Se implementó el juego de ajedrez. Este cuenta con todas las piezas del juego y sus movimientos básicos respectivos.
Se agregó la captura de piezas, pero no se puede capturar al rey.
Con respecto a movimientos especiales, sólo se implementó la coronación del peón (no hay elección de pieza, se corona automáticamente en reina). No se implementó enroque ni captura al paso del peón.
Con respecto a condiciones de victoria, no se implementó jaque ni jaque mate, por lo tanto, el juego no tiene ganador.
Para compilar basta con escribir
make ajedrez
en la ubicación del MakefileCambios:
Makefile
: Se añadió un target para compilar el ajedrez.Piece.hs
:removePiece
para eliminar piezas de la lista de piezas.isInside
para saber si una pieza esta dentro o fuera del tablero.playerAt
para determinar al dueño de la pieza.addQueen
para agregar una reina en el momento de la coronación del peón.Chess.hs
:winner
siempre entregaNothing
, así no hay ganadores.player0
comienza a jugar (piezas blancas)Nota:
Debido a que las funciones de movimiento son difíciles de entender a primera vista, y de manera de facilitar la revisión, se agregaron comentarios bastante detallados en cada una de las funciones añadidas.