package tv.dyndns.kishibe.qmaclone.client.game.shuffler;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import tv.dyndns.kishibe.qmaclone.client.packet.PacketProblem;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
public class ShufflerJunban implements Shuffleable {
@Override
public void shuffle(PacketProblem problem, int[] answerOrder, int[] choiceOrder) {
Preconditions.checkNotNull(answerOrder);
Preconditions.checkNotNull(choiceOrder);
if (answerOrder.length < 3) {
problem.shuffledAnswers = null;
problem.shuffledChoices = null;
return;
}
List<String> answers = Lists.newArrayList();
int numberOfAnswers = Math.min(answerOrder.length, problem.numberOfDisplayedChoices);
for (int i = 0; i < numberOfAnswers; ++i) {
answers.add(problem.answers[answerOrder[i]]);
}
problem.shuffledChoices = answers.toArray(new String[0]);
problem.shuffledAnswers = answers.toArray(new String[0]);
final List<String> originalAnswers = problem.getAnswerList();
Arrays.sort(problem.shuffledAnswers, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return originalAnswers.indexOf(o1) - originalAnswers.indexOf(o2);
}
});
}
}