package tv.dyndns.kishibe.qmaclone.client.creation.validater; import java.util.List; 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; /** * グループ分けクイズの検証器 * * @author nodchip */ public final class ValidatorGroup extends Validator { public Evaluation check(PacketProblem problem) { Preconditions.checkArgument(problem.type == ProblemType.Group); Evaluation eval = super.check(problem, false); List<String> warn = eval.warn; int numberOfChoice = problem.getNumberOfChoices(); if (numberOfChoice < 3) { warn.add("選択肢は3つ以上必要です"); } int numberOfAnswer = problem.getNumberOfAnswers(); if (numberOfAnswer < 3) { warn.add("解答は3つ以上必要です"); } if (numberOfChoice != numberOfAnswer) { warn.add("左右の選択肢の数が違います"); } int numberOfGroups = ImmutableSet.copyOf(problem.getAnswerList()).size(); if (numberOfGroups < 2) { warn.add("解答欄のグループの数が少なすぎます。"); } if (3 < numberOfGroups) { warn.add("解答欄のグループの数が多すぎます。"); } return eval; } }