protected void PruneKeysLeft(List <string> keysLeft, ISolvingRoundStateDto dto)
 {
     keysLeft.Remove(dto.Answer);
     keysLeft.RemoveAll(key => IsKeyToBeRemoved(key, dto.Answer, dto.LastCheck));
 }
 public bool IsGameFinished(ISolvingRoundStateDto dto)
 {
     return(dto.Round >= dto.Settings.RoundLimit ||
            dto.LastCheck != null && dto.LastCheck.IsCorrect);
 }