Move::Move(const Piece * movedPiece, const BoardPosition & moveFrom, const BoardPosition & moveTo) : pieceType(movedPiece->GetType()), pieceColor(movedPiece->GetColor()), moveFrom(moveFrom), moveTo(moveTo), capturedPieceType(-1), caputuredPiecePosition(BoardPosition(-1, -1)) { }
const BoardPosition BoardPosition::S() const { return BoardPosition(m_file0, m_rank0 - 1); }
const BoardPosition BoardPosition::NW() const { return BoardPosition(m_file0 - 1, m_rank0 + 1); }
const BoardPosition BoardPosition::E() const { return BoardPosition(m_file0 + 1, m_rank0); }