Code: Select all
...
public PawnSquareDirectionMovesBuilder(IMoveFactory mvFactory, ISquares<ISquareMoveGen> boardSquares)
{
MVFactory = mvFactory;
BoardSquares = boardSquares;
}
public IImmutableList<IMoveBase> BuildPawnSquareDirectionMoves(
ICoord coord, IPieceColor color,PawnDirection dir)
{
var lastRow = color == White() ? LASTROW : 0;
var square = BoardSquares[coord];
int rowNr = square.RowNr;
if (rowNr == 0 || rowNr == lastRow)
return null;
switch (dir)
{
case LEFT:
case RIGHT:
return BuildNonEPCaptures(color, square, dir);
case EP_LEFT:
case EP_RIGHT:
return BuildEPCaptures(color, square, dir);
case FRONT:
return BuildPawnFrontMoves(color, square);
default:
return null;
}
}
...