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
-
Method Summary
Modifier and Type Method Description booleanbeantworteFrage(int antwortNummer)Beantworte die aktuelle Frage.voidbeende()Beende ein Spiel.voiderzeugeFrage(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.voidfügeFragenAlsFeldEin(java.lang.String[][] fragen)Füge mehrere Fragen zufällig als zweidimensionales Feld ein.FragegibAktuelleFrage()Gib die aktuelle Frage.intgibAnzahlBeantworterFragen()Gib die Anzahl der beantworteten Fragen zurück.intgibAnzahlFragen()Gib die Anzahl der ins Spiel geladenen Fragen.intgibAnzahlUnbeantworterFragen()Gib die Anzahl der noch unbeantworteten Fragen, die ins Spiel geladen wurden zurück.FragenListegibBeantworteteFragen()Gib eine Liste der bereits beantworteten Fragen.java.lang.StringgibDateiPfad()Gib den Dateipfad der XML-Datei, der das aktuelle Spiel gestartet hat.java.lang.StringgibFormatierteGewinnSumme()Gib die formatiere Gewinnsumme mit Währungs-Zeichen und Tausenderpunkt und im konfigurierten Zahlenformat.intgibFragenNummer()Gib die aktuelle Fragennummer zurück. 1 ist die erste Fragennummer und so weiter.longgibGewinnSumme()Gib die aktuelle Gewinnsumme aus.FragegibNächsteFrage()Entnimm eine Frage.java.lang.StringgibThemenBereich()Gib den Namen des aktuellen Themenbereichs (z.java.lang.StringgibThemenGebiet()Gib das Thema des aktuellen Themengebiets (z.booleanistAktuelleFrageBeantwortet()Zeige an, ob die aktuelle Frage beantwortet (egal ob falsch oder richtig) wurde.booleanistAntwortRichtig(int antwortNummer)Überprüfe, ob die Antwort zur aktuellen Frage richtig oder flasch ist.booleanistBeendet()Zeige an, ob das Spiel beendet wurde.booleanistVerloren()Zeige an, ob das Spiel gewonnen oder verloren wurde.voidladeThemenGebiet(java.lang.String dateiPfad)Lade ein Themengebiet ins Spiel.voidsetzeThemenBereich(java.lang.String name)Setze den Namen des aktuellen Themenbereichs (z.voidsetzeThemenGebiet(java.lang.String thema)Setze das Thema des aktuellen Themengebiets (z.
-
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
Entnimm eine Frage. Diese Methode wird an die KlasseFragenListeweitergeleitet.- 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
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
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.
-