private static bool IsInCheck(PlayerColor color, Board board, Position origin, Position destination) { var move = new Move(origin, destination, board); var newBoard = new Board(move, board); var enemyMoveOptions = GetUncheckedMoveOptions(color.Enemy(), newBoard, new List <Position>()); return(Checker.IsInCheck(color, newBoard, enemyMoveOptions)); }
private static bool PawnAttackLegality(Position destination, PlayerColor color, Board board) { return(board.InBounds(destination) && board[destination].Color == color.Enemy()); }