import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; public class Test extends Question { private final ArrayList labels = new ArrayList<>(); private String[] options; private int numOfOptions; public Test() { } public Test(String description, String answer, String[] options) { super(description, answer); setOptions(options); } public String getOptionAt(int index) { return options[index]; } public void setOptions(String[] options) { this.options = options; numOfOptions = options.length; for (int i = 0; i < numOfOptions; i++) { labels.add((char) (65 + i)); } } public int getNumOfOptions() { return numOfOptions; } public boolean isCorrectAnswer(char label) { return options[label - 65].equals(getAnswer()); } public void shuffleOptions() { Collections.shuffle(Arrays.asList(options)); } @Override public String toString() { StringBuilder information = new StringBuilder(); information.append(String.format("%s", getDescription())); for (int i = 0; i < numOfOptions; i++) { information.append(String.format("\n%s) %s", labels.get(i), options[i])); } return information.toString(); } }