Skip to content
Snippets Groups Projects
Commit 43f8975b authored by Simon Barrett's avatar Simon Barrett
Browse files

Merged Lesson and CompletionInfo, removed Compeltion Info class

parent a7ab9299
Branches
No related tags found
No related merge requests found
File deleted
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
public class CompletionInfo {
private String lessonTitle;
private boolean lessonCompleted;
private boolean quizCompleted;
private int quizScore;
private int totalQuizPointsAvailable;
/** Completion info should be initialised at the beginning of the lesson
* when the user hasn't completed the lesson or quiz
* @param lessonTitle - Use the lesson title getter from the current lesson
* @param totalQuizPointsAvailable Use the question array length getter from the current lesson
*/
public CompletionInfo(String lessonTitle, int totalQuizPointsAvailable) {
this.lessonTitle = lessonTitle;
this.lessonCompleted = false;
this.quizCompleted = false;
this.quizScore = 0;
this.totalQuizPointsAvailable = totalQuizPointsAvailable;
}
public String getLessonTitle() {
return lessonTitle;
}
public boolean isQuizCompleted() {
return quizCompleted;
}
public int getQuizScore() {
return quizScore;
}
// Basic Setters
public void setLessonCompleted(boolean lessonCompleted) {
this.lessonCompleted = lessonCompleted;
}
public void setQuizCompleted(boolean quizCompleted) {
this.quizCompleted = quizCompleted;
}
public void setQuizScore(int quizScore) {
this.quizScore = quizScore;
}
public void replace(boolean lessonCompleted, boolean quizCompleted, int quizScore){
this.lessonCompleted = lessonCompleted;
this.quizCompleted = quizCompleted;
if(quizScore > this.quizScore) {
this.quizScore = quizScore;
}
}
// Custom toString() whose output changes based on if user has completed quiz or not
public String toString() {
if(quizCompleted == false) {
return " has completed the lesson for " + lessonTitle + " but not the quiz";
} else {
return " has completed the lesson and quiz for " + lessonTitle + ", with a score of " + quizScore + "/" + totalQuizPointsAvailable;
}
}
}
public class Lesson {
private String lessonTitle;
private String lesson;
private Question[] questionArray;
final private String lessonTitle;
final private String lesson;
final private Question[] questionArray;
private boolean lessonCompleted;
private boolean quizCompleted;
private int quizScore;
public Lesson(String lessonTitle, String lesson, Question[] questionArray) {
this.lessonTitle = lessonTitle;
this.lesson = lesson;
this.questionArray = questionArray;
this.lessonCompleted = false;
this.quizCompleted = false;
this.quizScore = 0;
}
// both print methods are essentially get methods with a more descriptive name
......@@ -17,6 +23,7 @@ public class Lesson {
}
public String printLesson() {
this.lessonCompleted = true;
return lesson;
}
......@@ -24,6 +31,43 @@ public class Lesson {
return questionArray.length;
}
public boolean isQuizCompleted() {
return quizCompleted;
}
public int getQuizScore() {
return quizScore;
}
// Basic Setters
public void setLessonCompleted(boolean lessonCompleted) {
this.lessonCompleted = lessonCompleted;
}
public void setQuizCompleted(boolean quizCompleted) {
this.quizCompleted = quizCompleted;
}
public void setQuizScore(int quizScore) {
this.quizScore = quizScore;
}
public void replace(boolean lessonCompleted, boolean quizCompleted, int quizScore){
this.lessonCompleted = lessonCompleted;
this.quizCompleted = quizCompleted;
if(quizScore > this.quizScore) {
this.quizScore = quizScore;
}
}
// Custom toString() whose output changes based on if user has completed quiz or not
public String toString() {
if(quizCompleted == false) {
return " has completed the lesson for " + lessonTitle + " but not the quiz";
} else {
return " has completed the lesson and quiz for " + lessonTitle + ", with a score of " + quizScore + "/" + getQuestionArrayLength();
}
}
/**
* Iterates over questionArray printing out each question in turn, recording user score,
......@@ -31,6 +75,7 @@ public class Lesson {
* @return total correct user answers
*/
public int doQuiz() {
this.quizCompleted = true;
int correctAnswers = 0;
int questionsAnswered = 0;
......
......@@ -36,12 +36,8 @@ public class QuizSystem {
Lesson chosenLesson = myData.cmt652.getLessons(choice);
System.out.println("You have chosen lesson: " + chosenLesson.printLessonTitle());
// Create a user object, to begin with store the lesson title and add info as user progresses
CompletionInfo currentIteration = new CompletionInfo(chosenLesson.printLessonTitle(), chosenLesson.getQuestionArrayLength());
// User takes the LESSON
System.out.println(chosenLesson.printLesson());
currentIteration.setLessonCompleted(true);
// Ask user if they want to do QUIZ
System.out.println("Would you like to do the quiz now? (y or n)");
......@@ -50,8 +46,7 @@ public class QuizSystem {
String nextString = ScannerExtension.chooseYorN();
if (nextString.equals("y")) {
currentIteration.setQuizScore(chosenLesson.doQuiz());
currentIteration.setQuizCompleted(true);
chosenLesson.setQuizScore(chosenLesson.doQuiz());
System.out.println("Please enter your name to record that you have completed the lesson and the quiz");
userName = ScannerExtension.scanString();
System.out.println("Record of completion and Score saved under username: " + userName);
......@@ -67,14 +62,11 @@ public class QuizSystem {
int userExists = users.checkIfUserExists(userName);
if(userExists == -1) {
User recordCurrentIteration = new User(userName);
recordCurrentIteration.addToUserRecord(currentIteration);
recordCurrentIteration.addToUserRecord(chosenLesson);
users.add(recordCurrentIteration);
} else {
users.getUsers().get(userExists).addToUserRecord(currentIteration);
users.getUsers().get(userExists).addToUserRecord(chosenLesson);
}
// to be removed
// users.printAllUsersData();
// User to decide to finish game or go back to starting menu
System.out.println("Would you like to continue playing or exit the game (y for continue playing, n to exit game)");
......
......@@ -3,7 +3,7 @@ import java.util.ArrayList;
public class User {
private String username;
private ArrayList<CompletionInfo> userRecord;
private ArrayList<Lesson> userRecord;
public User(String username) {
this.username = username;
......@@ -14,16 +14,16 @@ public class User {
return username;
}
public ArrayList<CompletionInfo> getUserRecord() {
public ArrayList<Lesson> getUserRecord() {
return userRecord;
}
public void addToUserRecord(CompletionInfo currentIteration) {
public void addToUserRecord(Lesson currentIteration) {
boolean inUserRecord = false;
int userPlace = 0;
for(int i = 0; i < userRecord.size(); i++) {
if(userRecord.get(i).getLessonTitle().equals(currentIteration.getLessonTitle())){
if(userRecord.get(i).printLessonTitle().equals(currentIteration.printLessonTitle())){
inUserRecord = true;
userPlace = i;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment