Buenas equipo,
Me alegro de poder comentarles que la mayoría del código refactoreado de las piezas se encuentra en su lugar. El refactoring consistió principalmente en separar el Blob en el cual se había convertido la clase Piece en 6 clases independientes (Knight, Pawn, King, Queen, Rook y Bishop), cada una capaz de calcular sus propios movimientos. De momento esto está todo implementado en piece.py.
A su vez, las nuevas clases expresan los movimientos utilizando instancias de las clases Move, Castling y Crowning, los cual nos ahorrará el tener que interpretar (adivinar) qué tipo de movimiento es realmente en función del estado del tablero, así como nos permitirá eventualmente implementar UNDO.
La idea sería ahora escribir Test Cases para las clases nuevas, de forma de probar bien de bien que los movimientos que estas calculan son los correctos para distintas configuraciones del tablero. Tanto Leonardo como Pelusita habrían comentado en el pasado la importancia de tener casos de testeo, y hoy más que nunca les doy la razón.
Algo tan sencillo como alcanza y sobra:
from piece import *
from board import *
b = Board(10, 10)
k = Knight("white")
k.get_moves(0,0,b) == [Move(0,0,2,1), Move(0,0,1,2)]
La pregunta es: ¿les estaría interesando meterse con esto, Leo y Pelu? Realmente me daría una mano enorme :D
Saludos,
Ale.-
--
Varrojo@Linux
http://varrojo.linuxuruguay.org