Package spiel_logik

Class Spiel

java.lang.Object
spiel_logik.Spiel

public class Spiel
extends java.lang.Object
Die Klasse Spiel repräsentiert ein aktuell laufendes Spiel. Die Klasse Spiel ist die Hauptklasse im paket spiel_logik. Sie kann in den grafischen Implementierung verwendet werden um die Spiellogik abzubilden. In ein Spiel werden zu Beginn Fragen in die einfach verkettete Liste unbeantworteteFragen geladen. Mit der Methode gibNächsteFrage() wird eine Frage entnommen, die dann mit der Methode beantworteFrage(int) beantwortet werden kann. Ist die Frage beantwortet wird sie aus der Liste unbeantworteteFragen entfernt und in die Liste beantworteteFragen gesetzt.
  • Constructor Summary

    Constructors 
    Constructor Description
    Spiel()
    Dieser Konstruktor startet ein neues Spiel ohne Fragen.
    Spiel​(java.lang.String dateiPfad)
    Dieser Konstruktor lädt gleich zum Start des neuen Spiels Fragen.
  • Method Summary

    Modifier and Type Method Description
    boolean beantworteFrage​(int antwortNummer)
    Beantworte die aktuelle Frage.
    void beende()
    Beende ein Spiel.
    void erzeugeFrage​(java.lang.String fragenText, java.lang.String richtigeAntwort, java.lang.String falscheAntwort1, java.lang.String falscheAntwort2, java.lang.String falscheAntwort3, java.lang.String schwierigkeit)
    Erzeuge eine neue Frage anhand von mehreren String-Argumenten und füge diese Frage zufällig ein.
    void fügeFragenAlsFeldEin​(java.lang.String[][] fragen)
    Füge mehrere Fragen zufällig als zweidimensionales Feld ein.
    Frage gibAktuelleFrage()
    Gib die aktuelle Frage.
    int gibAnzahlBeantworterFragen()
    Gib die Anzahl der beantworteten Fragen zurück.
    int gibAnzahlFragen()
    Gib die Anzahl der ins Spiel geladenen Fragen.
    int gibAnzahlUnbeantworterFragen()
    Gib die Anzahl der noch unbeantworteten Fragen, die ins Spiel geladen wurden zurück.
    FragenListe gibBeantworteteFragen()
    Gib eine Liste der bereits beantworteten Fragen.
    java.lang.String gibDateiPfad()
    Gib den Dateipfad der XML-Datei, der das aktuelle Spiel gestartet hat.
    java.lang.String gibFormatierteGewinnSumme()
    Gib die formatiere Gewinnsumme mit Währungs-Zeichen und Tausenderpunkt und im konfigurierten Zahlenformat.
    int gibFragenNummer()
    Gib die aktuelle Fragennummer zurück. 1 ist die erste Fragennummer und so weiter.
    long gibGewinnSumme()
    Gib die aktuelle Gewinnsumme aus.
    Frage gibNächsteFrage()
    Entnimm eine Frage.
    java.lang.String gibThemenBereich()
    Gib den Namen des aktuellen Themenbereichs (z.
    java.lang.String gibThemenGebiet()
    Gib das Thema des aktuellen Themengebiets (z.
    boolean istAktuelleFrageBeantwortet()
    Zeige an, ob die aktuelle Frage beantwortet (egal ob falsch oder richtig) wurde.
    boolean istAntwortRichtig​(int antwortNummer)
    Überprüfe, ob die Antwort zur aktuellen Frage richtig oder flasch ist.
    boolean istBeendet()
    Zeige an, ob das Spiel beendet wurde.
    boolean istVerloren()
    Zeige an, ob das Spiel gewonnen oder verloren wurde.
    void ladeThemenGebiet​(java.lang.String dateiPfad)
    Lade ein Themengebiet ins Spiel.
    void setzeThemenBereich​(java.lang.String name)
    Setze den Namen des aktuellen Themenbereichs (z.
    void setzeThemenGebiet​(java.lang.String thema)
    Setze das Thema des aktuellen Themengebiets (z.

    Methods inherited from class java.lang.Object

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

    • Spiel

      public Spiel()
      Dieser Konstruktor startet ein neues Spiel ohne Fragen. Es müssen erst Fragen ins Spiel geladen werden.
    • Spiel

      public Spiel​(java.lang.String dateiPfad)
      Dieser Konstruktor lädt gleich zum Start des neuen Spiels Fragen.
      Parameters:
      dateiPfad - Ein Pfad zu einer Themengebiets-XML-Datei. Relativer Pfad zum Projektverzeichnis, beispielsweise "/FRAGEN/informatik/6_jahrgangsstufe.xml".
  • Method Details

    • gibAnzahlFragen

      public int gibAnzahlFragen()
      Gib die Anzahl der ins Spiel geladenen Fragen.
      Returns:
      Gib die Anzahl der ins Spiel geladenen Fragen.
    • erzeugeFrage

      public void erzeugeFrage​(java.lang.String fragenText, java.lang.String richtigeAntwort, java.lang.String falscheAntwort1, java.lang.String falscheAntwort2, java.lang.String falscheAntwort3, java.lang.String schwierigkeit)
      Erzeuge eine neue Frage anhand von mehreren String-Argumenten und füge diese Frage zufällig ein. Die Argumente können direkt aus dem CSVLeser eingelesen werden.
      Parameters:
      fragenText - Der Text der Frage (Der eigentliche Fragensatz).
      richtigeAntwort - Die richtige Antwort.
      falscheAntwort1 - Die falsche Antwort Nr. 1.
      falscheAntwort2 - Die falsche Antwort Nr. 2.
      falscheAntwort3 - Die falsche Antwort Nr. 3.
      schwierigkeit - Die Schwierigkeit (1-5).
    • fügeFragenAlsFeldEin

      public void fügeFragenAlsFeldEin​(java.lang.String[][] fragen)
      Füge mehrere Fragen zufällig als zweidimensionales Feld ein. Die Methode wird an die gleichnamige Methode der Klasse Jahrgangsstufe weitergegeben.
      Parameters:
      fragen - Mehrere Fragen als zweidimensionales Feld.
    • gibNächsteFrage

      public Frage gibNächsteFrage()
      Entnimm eine Frage. Diese Methode wird an die Klasse FragenListe weitergeleitet.
      Returns:
      Die nächste Frage
    • istAntwortRichtig

      public boolean istAntwortRichtig​(int antwortNummer)
      Überprüfe, ob die Antwort zur aktuellen Frage richtig oder flasch ist.
      Parameters:
      antwortNummer - Eine Antwortnummer (0 = A, 1 = B, 2 = C, 3 = D).
      Returns:
      Wahr, wenn die Frage richtig beantwortete wurde.
    • gibBeantworteteFragen

      public FragenListe gibBeantworteteFragen()
      Gib eine Liste der bereits beantworteten Fragen. Diese getter-Methode kann beispielsweise dazu verwendet werden, um am Ende des Spiels eine Übersicht über die bisherigen Fragen anzuzeigen.
      Returns:
      Eine Liste der bereits beantworteten Fragen.
    • gibAktuelleFrage

      public Frage gibAktuelleFrage()
      Gib die aktuelle Frage.
      Returns:
      Die aktuelle Frage.
    • beantworteFrage

      public boolean beantworteFrage​(int antwortNummer)
      Beantworte die aktuelle Frage.
      Parameters:
      antwortNummer - Eine Antwortnummer (0 = A, 1 = B, 2 = C, 3 = D).
      Returns:
      Wahr, wenn die Frage richtig beantwortet wurde.
    • gibFragenNummer

      public int gibFragenNummer()
      Gib die aktuelle Fragennummer zurück. 1 ist die erste Fragennummer und so weiter.
      Returns:
      Die Fragennummer. 1 ist die erste Fragennummer.
    • gibAnzahlUnbeantworterFragen

      public int gibAnzahlUnbeantworterFragen()
      Gib die Anzahl der noch unbeantworteten Fragen, die ins Spiel geladen wurden zurück.
      Returns:
      Die Anzahl der noch unbeantworteten Fragen.
    • gibAnzahlBeantworterFragen

      public int gibAnzahlBeantworterFragen()
      Gib die Anzahl der beantworteten Fragen zurück.
      Returns:
      Die Anzahl der beantworteten Fragen.
    • gibGewinnSumme

      public long gibGewinnSumme()
      Gib die aktuelle Gewinnsumme aus.
      Returns:
      Die aktuelle Gewinnsumme.
    • gibFormatierteGewinnSumme

      public java.lang.String gibFormatierteGewinnSumme()
      Gib die formatiere Gewinnsumme mit Währungs-Zeichen und Tausenderpunkt und im konfigurierten Zahlenformat.
      Returns:
      Die formatierte Gewinnsumme.
    • istVerloren

      public boolean istVerloren()
      Zeige an, ob das Spiel gewonnen oder verloren wurde.
      Returns:
      Wahr, wenn das Spiel verloren wurde.
    • istBeendet

      public boolean istBeendet()
      Zeige an, ob das Spiel beendet wurde. Wenn das Spiel verloren wurde, ist das Spiel immer beendet. Man kann ein Spiel vorzeitig beenden und die Gewinnsumme mitnehmen.
      Returns:
      Wahr, wenn das Spiel beendet wurde.
    • istAktuelleFrageBeantwortet

      public boolean istAktuelleFrageBeantwortet()
      Zeige an, ob die aktuelle Frage beantwortet (egal ob falsch oder richtig) wurde. Diese Methode wird gebraucht, um zu überprüfen, ob eine neue Frage angezeigt werden kann.
      Returns:
      Wahr, wenn die Frage beantwortete wurde.
    • beende

      public void beende()
      Beende ein Spiel.
    • ladeThemenGebiet

      public void ladeThemenGebiet​(java.lang.String dateiPfad)
      Lade ein Themengebiet ins Spiel.
      Parameters:
      dateiPfad - Ein Pfad zu einer Themengebiets-XML-Datei. Relativer Pfad zum Projektverzeichnis, beispielsweise "/FRAGEN/informatik/6_jahrgangsstufe.xml".
    • setzeThemenBereich

      public void setzeThemenBereich​(java.lang.String name)
      Setze den Namen des aktuellen Themenbereichs (z. B. Unterrichtsfach „Informatik“)
      Parameters:
      name - Der Namen des aktuellen Themenbereichs.
    • gibThemenBereich

      public java.lang.String gibThemenBereich()
      Gib den Namen des aktuellen Themenbereichs (z. B. Unterrichtsfach „Informatik“)
      Returns:
      Der Namen des aktuellen Themenbereichs.
    • setzeThemenGebiet

      public void setzeThemenGebiet​(java.lang.String thema)
      Setze das Thema des aktuellen Themengebiets (z. B. Jahrgangsstufe („6. Jahrgangsstufe“)).
      Parameters:
      thema - Das Thema des aktuellen Themengebiets.
    • gibThemenGebiet

      public java.lang.String gibThemenGebiet()
      Gib das Thema des aktuellen Themengebiets (z. B. Jahrgangsstufe („6. Jahrgangsstufe“)).
      Returns:
      Das Thema des aktuellen Themengebiets.
    • gibDateiPfad

      public java.lang.String gibDateiPfad()
      Gib den Dateipfad der XML-Datei, der das aktuelle Spiel gestartet hat. Die getter-Methode kann dazu benutzt werden, das gleiche Spiel nochmal zu starten.
      Returns:
      Der Dateipfad der XML-Datei, der das aktuelle Spiel gestartet hat.