Se creó el juego Ajedrez, misma Issue efectuada en proyecto Java.
Interfaz Del Juego:
Se agregó a la interfaz original, un apartado donde aparecen las piezas capturadas por cada jugador,
de la misma manera que en issue de Java.
El jugador de abajo es el jugador 0, y el de arriba el jugador 1Puede observarse la posición incial de las fichas junto con sus movimientos disponibles
Movimiento y captura
Se considero para cada pieza su movimiento siguiendo las reglas del ajedrez.
Para capturar se utilizó el siguiente método:
Al capturar, la pieza capturada es trasladada a una posición fuera del tablero. Es una casilla única y fija para cada jugador
Luego con la función capturedPieces, créo una lista con piezas capturadas, pero las coloco una al lado de la otra (explicación de la funcion en el codigo)
Lo anterior con el objetivo de aprovechar la mecanica de draw en la instancia que convierte el tablero en string.
Finalmente desde drawBoard puedo mostrar por pantalla las fichas capturadas.
Mecánicas implementadas con respecto a versión anterior en Java
En esta oportunidad se implementó la mecánica Pawn Promotion, y la siguiente condición de victoria:
Gana el jugador que deje sin piezas al adversario, o lo deje sin movimientos posibles.
Mecanicas no implementadas
No fueron implementados los movimientos especiales Castling y En Passant.
Tampoco fue implementado Check y Checkmate
Video demostrativo
En el video se puede observar multiples partidas, con ambos jugadores cpuRand.
Mientras jugan 2 jugadores random, puede darse el caso en que ambos jugadores queden con una ficha con multiples movimientos,
por ejemplo una reina, y que tarde mucho o se quede en un loop eterno intentando capturar una ficha a la otra, que es lo lógico debido a la condición de victoria.
En la mayoría de los casos alguno de los 2 ganará.
Chess, Haskell Version
Iván Pizarro Quezada
Rol : 2703059-9
Se creó el juego Ajedrez, misma Issue efectuada en proyecto Java.
Interfaz Del Juego:
Se agregó a la interfaz original, un apartado donde aparecen las piezas capturadas por cada jugador, de la misma manera que en issue de Java. El jugador de abajo es el jugador 0, y el de arriba el jugador 1 Puede observarse la posición incial de las fichas junto con sus movimientos disponibles
Movimiento y captura
Se considero para cada pieza su movimiento siguiendo las reglas del ajedrez.
Para capturar se utilizó el siguiente método:
Mecánicas implementadas con respecto a versión anterior en Java
En esta oportunidad se implementó la mecánica Pawn Promotion, y la siguiente condición de victoria:
Mecanicas no implementadas
No fueron implementados los movimientos especiales Castling y En Passant. Tampoco fue implementado Check y Checkmate
Video demostrativo
En el video se puede observar multiples partidas, con ambos jugadores cpuRand.
https://youtu.be/sUkTJZ0p16w
Nota
Mientras jugan 2 jugadores random, puede darse el caso en que ambos jugadores queden con una ficha con multiples movimientos, por ejemplo una reina, y que tarde mucho o se quede en un loop eterno intentando capturar una ficha a la otra, que es lo lógico debido a la condición de victoria. En la mayoría de los casos alguno de los 2 ganará.