Class QuestionController

java.lang.Object
eu.flrkv.wwm.Question.QuestionController

public class QuestionController
extends java.lang.Object
Klasse zur Verwaltung der Spiel-Fragen Kann als Objekt initialisiert werden um spezifisch für ein Spiel Fragen aus der Datenbanmk zu holen.
  • Field Summary

    Fields
    Modifier and Type Field Description
    private Game game
    Objekt des aktuellen Spiels
  • Constructor Summary

    Constructors
    Constructor Description
    QuestionController​(Game pGame)
    Kontruktor der Klasse QuestionController
  • Method Summary

    Modifier and Type Method Description
    static boolean addQuestion​(int pDifficulty, java.lang.String pQuestion, java.lang.String pAnswer0, java.lang.String pAnswer1, java.lang.String pAnswer2, java.lang.String pRightAnswer)
    Speichert eine neue Frage in die Datenbank
    static boolean deleteQuestion​(int pQuestionID)
    Löscht eine Frage anhand der ID
    static java.util.ArrayList<Question> getAllQuestions()
    Holt alle Fragen aus der Datenbank und gibt diese zurück.
    int[] getIDsOfUsedQuestions()
    Holt die ID's aller bereits benutzen Fragen für den Spielstand.
    static java.lang.String[] getMixedAnswerArray​(Question pQuestion)
    Mischt die Antwortmöglichkeiten (Positionen des Arrays) durch
    Question getNewQuestion​(int pDifficulty)
    Gíbt eine neu noch nicht verwendete Frage aus der MySQL-Datenbanktabelle 'wwm_questions' zurück
    static Question getQuestion​(int pQuestionID)
    Holt eine Frage mit einer bestimmten ID aus der Datenbank.
    static int getQuestionCount()
    Zählt alle Zeilen (Frageanzahl) der Tabelle wwm_questions
    private static Question getRandomQuestion()
    Gibt eine zufällige Frage zurück
    private boolean questionIsUsed​(int pID)
    Prüft anhand einer FrageID ob die Frage bereits genutzt wurde
    private void setQuestionUsed​(Question pQuestion)
    Setzt eine Frage als bereits genutzt

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • game

      private final Game game
      Objekt des aktuellen Spiels
  • Constructor Details

    • QuestionController

      public QuestionController​(Game pGame)
      Kontruktor der Klasse QuestionController
      Parameters:
      pGame - Objekt der Klasse Game -> Referenzobjekt für die Fragenasuwahl
  • Method Details

    • getIDsOfUsedQuestions

      public int[] getIDsOfUsedQuestions()
      Holt die ID's aller bereits benutzen Fragen für den Spielstand.
      Returns:
      Gibt die IDs (integer) als Array zurück.
    • questionIsUsed

      private boolean questionIsUsed​(int pID)
      Prüft anhand einer FrageID ob die Frage bereits genutzt wurde
      Parameters:
      pID - FragenID
      Returns:
      Gibt true zurü falls die Frage bereits genutzt wurde
    • setQuestionUsed

      private void setQuestionUsed​(Question pQuestion)
      Setzt eine Frage als bereits genutzt
      Parameters:
      pQuestion - Fragenobjekt
    • getNewQuestion

      public Question getNewQuestion​(int pDifficulty)
      Gíbt eine neu noch nicht verwendete Frage aus der MySQL-Datenbanktabelle 'wwm_questions' zurück
      Parameters:
      pDifficulty - Schwierigkeitskategorie der Frage (0 -> Leicht, 1 -> Mittel, 2 -> Schwer)
      Returns:
      Gibt die Frage als Objekt zurück.
    • getMixedAnswerArray

      public static java.lang.String[] getMixedAnswerArray​(Question pQuestion)
      Mischt die Antwortmöglichkeiten (Positionen des Arrays) durch
      Parameters:
      pQuestion - Fragenobjekt
      Returns:
      Array mit gemischten Antworten
    • getRandomQuestion

      private static Question getRandomQuestion()
      Gibt eine zufällige Frage zurück
      Returns:
      Frage in Form eines Objekts der Klasse Question
    • addQuestion

      public static boolean addQuestion​(int pDifficulty, java.lang.String pQuestion, java.lang.String pAnswer0, java.lang.String pAnswer1, java.lang.String pAnswer2, java.lang.String pRightAnswer)
      Speichert eine neue Frage in die Datenbank
      Parameters:
      pDifficulty - Schwierigkeitsgrad (1-3) der Frage
      pQuestion - Frage als String
      pAnswer0 - Antwort als String
      pAnswer1 - Antwort als String
      pAnswer2 - Antwort als String
      pRightAnswer - Richtige Antwort als String
      Returns:
      Gibt true als boolean zurück, wenn die Frage erfolgreich abgespeichert wurde.
    • getQuestion

      public static Question getQuestion​(int pQuestionID) throws QuestionNotFoundException
      Holt eine Frage mit einer bestimmten ID aus der Datenbank.
      Parameters:
      pQuestionID - ID der Frage, die gelesen werden soll.
      Returns:
      Gibt die Frage als Objekt zurück. Wenn keine Frage mit der ID existiert wird null zurückgegeben.
      Throws:
      QuestionNotFoundException - falls der Spielstand nicht gefunden wurde
    • deleteQuestion

      public static boolean deleteQuestion​(int pQuestionID)
      Löscht eine Frage anhand der ID
      Parameters:
      pQuestionID - FragenID
      Returns:
      Gibt true zurück wenn die Frage erfolgreich gelöscht wurde
    • getAllQuestions

      public static java.util.ArrayList<Question> getAllQuestions()
      Holt alle Fragen aus der Datenbank und gibt diese zurück.
      Returns:
      Gibt die Fragen als ArrayList mit den Question Objekten zurück
    • getQuestionCount

      public static int getQuestionCount()
      Zählt alle Zeilen (Frageanzahl) der Tabelle wwm_questions
      Returns:
      Gibt die Anzahl der Zeilen als Integer zurück.