private void PassedPawn(IReadOnlyList<Move> moves, Board board, Figure pawn)
{
int rowFrom;
int rowTo;
int rows;
var pawnX = board.ReturnPosition(pawn).Item1;
var pawnY = board.ReturnPosition(pawn).Item2;
switch (pawn.Side)
{
case Side.BLACK:
rows = 4;
rowFrom = rows - 2;
rowTo = rows - 1;
break;
case Side.WHITE:
rows = 5;
rowFrom = rows + 2;
rowTo = rows + 1;
break;
default:
return;
}
var cell = new List<string>();
if (pawnX != 'a')
cell.Add(((char)(pawnX - 1)).ToString(CultureInfo.InvariantCulture) + rows);
if (pawnX != 'h')
cell.Add(((char)(pawnX + 1)).ToString(CultureInfo.InvariantCulture) + rows);
foreach (var c in cell)
{
if (board[c].GetType() == typeof(FigurePawn) && board[c].Side != pawn.Side &&
moves[moves.Count - 1].To == c && moves[moves.Count - 1].From ==
c[0].ToString(CultureInfo.InvariantCulture) + rowFrom && pawnY == rows)
Attackers[c[0] - 'a', rowTo - 1].Add(pawn);
}
}