protected function askQuestions(Set $set, InputInterface $input, OutputInterface $output)
{
$questionHelper = $this->getHelper('question');
$showMultipleChoice = $input->getOption('show-multiple-choice');
$questionCount = 1;
foreach ($set->getQuestions() as $i => $question) {
$choiceQuestion = new ChoiceQuestion(sprintf('Question <comment>#%d</comment> [<info>%s</info>] %s' . ($showMultipleChoice === true ? "\n" . 'This question <comment>' . ($question->isMultipleChoice() === true ? 'IS' : 'IS NOT') . "</comment> multiple choice." : ""), $questionCount++, $question->getCategory(), $question->getQuestion()), $question->getAnswersLabels());
$multiSelect = $showMultipleChoice === true ? $question->isMultipleChoice() : true;
$numericOnly = 1 === array_product(array_map('is_numeric', $question->getAnswersLabels()));
$choiceQuestion->setMultiselect($multiSelect);
$choiceQuestion->setErrorMessage('Answer %s is invalid.');
$choiceQuestion->setAutocompleterValues($numericOnly ? null : $question->getAnswersLabels());
$answer = $questionHelper->ask($input, $output, $choiceQuestion);
$answers = true === $multiSelect ? $answer : array($answer);
$answer = true === $multiSelect ? implode(', ', $answer) : $answer;
$set->setAnswer($i, $answers);
if ($input->getOption("training")) {
$uniqueSet = new Set(array($i => $question));
$uniqueSet->setAnswer($i, $answers);
$this->displayResults($uniqueSet, $output);
}
$output->writeln('<comment>✎ Your answer</comment>: ' . $answer . "\n");
}
}