package tv.dyndns.kishibe.qmaclone.client.creation.validater; import java.util.List; import java.util.Set; import tv.dyndns.kishibe.qmaclone.client.game.ProblemType; import tv.dyndns.kishibe.qmaclone.client.packet.PacketProblem; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; public class ValidatorHayaimono extends Validator { @Override public Evaluation check(PacketProblem problem) { Preconditions.checkArgument(problem.type == ProblemType.Hayaimono); Evaluation eval = super.check(problem); List<String> warn = eval.warn; int numberOfChoices = problem.getNumberOfChoices(); if (numberOfChoices != 6 && numberOfChoices != 8) { warn.add("選択肢は6つ又は8つ必要です"); } int numberOfAnswers = problem.getNumberOfAnswers(); if (numberOfChoices == 6) { if (numberOfAnswers != 2) { warn.add("選択肢が6つの場合は解答は2つ必要です"); } } else if (numberOfChoices == 8) { if (numberOfAnswers != 3 && numberOfAnswers != 4) { warn.add("選択肢が8つの場合は解答は3つ又は4つ必要です"); } } Set<String> choices = ImmutableSet.copyOf(problem.getChoiceList()); List<String> answerList = problem.getAnswerList(); for (int i = 0; i < answerList.size(); ++i) { String answer = answerList.get(i); if (!choices.contains(answer)) { warn.add((i + 1) + "個目の解答が選択肢に含まれていません"); } } return eval; } }