private static ChosenBlockers ImprooveAssignementsByAddingAditionalBlockers( IEnumerable <BlockerAssignment> assignments, List <Card> unassignedBlockers) { foreach (var assignment in assignments.Where(x => !x.IsAttackerKilled)) { if (unassignedBlockers.Count == 0) { break; } assignment.AssignAdditionalBlockers(unassignedBlockers); } var result = new ChosenBlockers(); foreach (var assignment in assignments) { foreach (var blocker in assignment.Blockers) { result.Add(blocker, assignment.Attacker); } } return(result); }
private static ChosenBlockers ImprooveAssignementsByAddingAditionalBlockers( IEnumerable<BlockerAssignment> assignments, List<Card> unassignedBlockers) { foreach (var assignment in assignments.Where(x => !x.IsAttackerKilled)) { if (unassignedBlockers.Count == 0) break; assignment.AssignAdditionalBlockers(unassignedBlockers); } var result = new ChosenBlockers(); foreach (var assignment in assignments) { foreach (var blocker in assignment.Blockers) { result.Add(blocker, assignment.Attacker); } } return result; }