Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. package quiz;
  2.  
  3. import java.util.*;
  4.  
  5. public class MultipleChoice extends Question {
  6. private int answerIdx;
  7. private String optionsText;
  8. private int nAnswers;
  9.  
  10. public MultipleChoice(String question, String trueAnswer, String... falseAnswers) {
  11. super(question);
  12. Random rnd = new Random();
  13.  
  14. List<String> answers = new ArrayList<>(Arrays.asList(falseAnswers));
  15. this.answerIdx = rnd.nextInt(1 + falseAnswers.length);
  16. Collections.shuffle(answers);
  17. answers.add(answerIdx, trueAnswer);
  18.  
  19. optionsText = "Choose one of the following\n";
  20. for (int i = 0; i < answers.size(); i++) {
  21. optionsText += String.format("\n%c: %s", 'A' + i, answers.get(i));
  22. }
  23. nAnswers = answers.size();
  24. }
  25.  
  26.  
  27. @Override
  28. public boolean checkAnswer(String ans) {
  29. if (ans.length() != 1) {
  30. return false;
  31. }
  32. return ans.getBytes()[0] == 'A' + answerIdx;
  33. }
  34.  
  35. @Override
  36. public boolean checkAnswerFormat(String ans) {
  37. if (ans.length() != 1) {
  38. return false;
  39. }
  40. byte response = ans.getBytes()[0];
  41. return response >= 'A' && response < 'A' + nAnswers;
  42.  
  43. }
  44.  
  45. @Override
  46. public String getOptions() {
  47. return optionsText;
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement