From 96715d3f4372085d4ef555aff67aba163b17de2a Mon Sep 17 00:00:00 2001 From: Friederike von Gruben Date: Thu, 2 Feb 2023 00:57:24 +0100 Subject: [PATCH] refactoring: Edited code structure Outsourced the generating random number method --- .../org/bitbiome/commands/QuizCommand.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/bitbiome/commands/QuizCommand.java b/src/main/java/org/bitbiome/commands/QuizCommand.java index 05eb2e8..d4c37dd 100644 --- a/src/main/java/org/bitbiome/commands/QuizCommand.java +++ b/src/main/java/org/bitbiome/commands/QuizCommand.java @@ -9,20 +9,24 @@ import java.util.Random; import java.util.Scanner; public class QuizCommand implements CommandAPI { - + private Scanner quizScanner; @Override public void performCommand(Scanner scanner, boolean isRunning, String message) { + quizScanner = new Scanner(System.in); + String path = "src\\main\\resources\\quiz.json"; JSONObject quiz = JsonParser.readJSONFile(path); JSONArray fragen = quiz.getJSONArray("Quiz"); - int index = new Random().nextInt(fragen.length()); - JSONObject frage = fragen.getJSONObject(index); - JSONArray antworten = frage.getJSONArray("antworten"); + JSONObject frage = fragen.getJSONObject(random(fragen.length())); - print("Du hast das Quiz gestartet! Hinweis: Wähle deine Antwort, indem du die Zahl (1-4) eingibst. Ist deine Lösung richtig, erhälst du 5 Münzen. Viel Erfolg! \n"); + JSONArray antworten = frage.getJSONArray("antworten"); String frageString = frage.getString("frage"); + String korrekteAntwort = frage.getString("korrekteAntwort"); + + + print("Du hast das Quiz gestartet! Hinweis: Wähle deine Antwort, indem du die Zahl (1-4) eingibst. Ist deine Lösung richtig, erhälst du 5 Münzen. Viel Erfolg! \n"); print(frageString); @@ -30,9 +34,9 @@ public class QuizCommand implements CommandAPI { String antwort = antworten.getString(i); print(i + 1 + ". " + antwort); } - Scanner quizScanner = new Scanner(System.in); + int eingabe = quizScanner.nextInt(); - String korrekteAntwort = frage.getString("korrekteAntwort"); + if (answerIsCorrect(eingabe, korrekteAntwort, antworten)) { print("Richtige Antwort!\n"); @@ -52,6 +56,10 @@ public class QuizCommand implements CommandAPI { return message; } + public static int random(int length) { + return new Random().nextInt(length); + } + }