diff --git a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/AssessmentGenerator.java b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/AssessmentGenerator.java index a66bdf5..8c3b9a4 100644 --- a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/AssessmentGenerator.java +++ b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/AssessmentGenerator.java @@ -32,7 +32,7 @@ import java.util.*; * @see MatchTheMeaningController */ public class AssessmentGenerator { - public static boolean isEnglish; + public static boolean isEnglishList; static LinkedList listOfAssessment = new LinkedList<>(); static int currentAssessment = 0; static int totalCorrectAnswers = 0; @@ -51,8 +51,6 @@ public class AssessmentGenerator { reset(); - //int wordToTranslatePlace; - if (practiseList.size()<5){ Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Error"); @@ -67,8 +65,6 @@ public class AssessmentGenerator { int quizType = rand.nextInt(3); switch (quizType) { case (0): //0 Means translation test. - //wordToTranslatePlace = rand.nextInt(Application.practiseList.size()); - //wordToTranslate = Application.practiseList.get(wordToTranslatePlace); if((listOfAssessment.isEmpty()) || !(listOfAssessment.getLast() instanceof TranslationQuestion)){ generatedAssessment = generateTranslationTest(practiseList); }else { @@ -76,8 +72,6 @@ public class AssessmentGenerator { } break; case (1): //1 Means six meanings test. - //wordToTranslatePlace = rand.nextInt(Application.practiseList.size()); - //wordToTranslate = Application.practiseList.get(wordToTranslatePlace); if(((listOfAssessment.isEmpty())) || !(listOfAssessment.getLast() instanceof SixMeaningsQuestion)){ generatedAssessment = generateSixMeanings(practiseList); }else { @@ -85,12 +79,6 @@ public class AssessmentGenerator { } break; case (2): //2 Means match meanings test. -// LinkedList wordsToTranslate = new LinkedList<>(); -// for (int i = 0; i < 3; i++) { -// wordToTranslatePlace = rand.nextInt(Application.practiseList.size()); -// wordsToTranslate.add(Application.practiseList.get(wordToTranslatePlace)); -// wordsToTranslate.toArray(); -// } if((listOfAssessment.isEmpty()) || !(listOfAssessment.getLast() instanceof MatchTheMeaningQuestion)){ generatedAssessment = generateMatchMeaning(practiseList); }else { @@ -161,6 +149,10 @@ public class AssessmentGenerator { } + /** + * Method uses currentAssessment as pointer to go to next question in assessment list. + * Uses a switch case statement to choose the appropriate type of question. + */ public static void goToNextQuestion() { if (currentAssessment > 0){ Question.showFeedback(); @@ -224,6 +216,9 @@ public class AssessmentGenerator { return totalAnswers; } + /** + * Method for resetting assessment to default state. + */ public static void reset(){ totalCorrectAnswers = 0; totalAnswers =0; diff --git a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/MatchTheMeaningQuestion.java b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/MatchTheMeaningQuestion.java index cae3dd0..032b0d7 100644 --- a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/MatchTheMeaningQuestion.java +++ b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/MatchTheMeaningQuestion.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.Arrays; /** - * Class used to create a MatchTheMeaning Question. + * Class used to generate a MatchTheMeaning Question. * @author Brad Corbett [brc9] * @author Henry Dugmore [hjd3] * @author Kain Bryan-Jones [kab74] @@ -18,15 +18,20 @@ import java.util.Arrays; * @version 0.1 Initial development * @see Question */ - - public class MatchTheMeaningQuestion extends Question { private final ArrayList correctAnswer = new ArrayList<>(); + /** + * Default constructer which loads ArrayList into correctAnswer field variable. + * @param correctAnswer the ArrayList of DictionaryEntry objects + */ public MatchTheMeaningQuestion(DictionaryEntry[] correctAnswer){ this.correctAnswer.addAll(Arrays.asList(correctAnswer)); } + /** + * @return ArrayList of DictionaryEntry objects storing correctAnswers + */ public ArrayList getCorrectAnswer() { return correctAnswer; } diff --git a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/Question.java b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/Question.java index 342d620..d9658e0 100644 --- a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/Question.java +++ b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/Question.java @@ -27,8 +27,10 @@ public class Question { public static int wrongAnswers =0; public static StringBuilder sb = new StringBuilder(); - /** Function that checks the answers of - * + /** Function that checks the answers of questions. Checks whether they're right and + * uses an object instance of StringBuilder to build an appropriate sentence to present to the user to give + * them their feedback. + * E.g. "Apple is the English for Afal is correct" * @param listOfCorrectQuestions List of the right answers to the question. * @param listOfAnswers List of the answers the user input. * @param isEnglish Boolean for if the test is English To Welsh or Welsh To English @@ -38,11 +40,20 @@ public class Question { if(isEnglish){ for(int i=0; i dictionary; + /** + * Default constructor for SixMeaningsQuestion. + * @param correctAnswer the correct answer for the list of questions. + * @param dictionary the list of questions the user will have to pick between + */ public SixMeaningsQuestion(DictionaryEntry correctAnswer, LinkedList dictionary) { this.correctAnswer = correctAnswer; this.dictionary = dictionary; } - /** Function to retrieve the correct answer to a SixMeaningsQuestion. - * + /** + * Function to retrieve the correct answer to a SixMeaningsQuestion * @return Retrieves the correct answer */ - public ArrayList getCorrectAnswer() { Random rand = new Random(); + ArrayList result = new ArrayList<>(); result.add(correctAnswer); int successfulAnswersSelected = 0; + + while(successfulAnswersSelected<5){ DictionaryEntry selectedAnswer; selectedAnswer = dictionary.get(rand.nextInt(dictionary.size()-1)); @@ -49,8 +56,6 @@ public class SixMeaningsQuestion extends Question{ result.add(selectedAnswer); successfulAnswersSelected++; } - - return result; } } diff --git a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/TranslationQuestion.java b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/TranslationQuestion.java index b3a45d6..f780fda 100644 --- a/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/TranslationQuestion.java +++ b/src/Welsh Vocabulary Tutor/src/main/java/uk/ac/aber/cs22120/group20/selfassessment/TranslationQuestion.java @@ -19,6 +19,10 @@ import uk.ac.aber.cs22120.group20.json.DictionaryEntry; public class TranslationQuestion extends Question { private final DictionaryEntry correctAnswer; + /** + * Default constructor for translation question + * @param correctAnswer the correct answer of translation guess. + */ public TranslationQuestion(DictionaryEntry correctAnswer){ this.correctAnswer = correctAnswer; }