public override System.Collections.Generic.IEnumerable<Move> GetValidMoves(Square[][] board)
{
var legalMoves = new List<Move>();
if (!CurrentColumn.HasValue || !CurrentRow.HasValue || !Alive) return legalMoves;
var column = CurrentColumn.Value;
var row = CurrentRow.Value;
var possibleEndPosition = new[]
{
new Tuple<int, int>(row, column + 1),
new Tuple<int, int>(row, column - 1),
new Tuple<int, int>(row + 1, column + 1),
new Tuple<int, int>(row + 1, column - 1),
new Tuple<int, int>(row - 1, column + 1),
new Tuple<int, int>(row - 1, column - 1),
new Tuple<int, int>(row + 1, column),
new Tuple<int, int>(row - 1, column),
};
foreach (var position in possibleEndPosition)
{
var newRow = position.Item1;
var newColumn = position.Item2;
if (newRow < 8 && newRow >= 0)
if (newColumn < 8 && newColumn >= 0)
{
var occupant = board[newRow][newColumn].ChessPiece;
if (occupant == null || occupant.Team != Team)
legalMoves.Add(SetupNewMove(newRow, newColumn));
}
}
return legalMoves;
}