Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
erst mal freue ich mich sehr das ich nun endlich auch hier angemeldet bin nach etwas längerem stöbern und immer wieder von google aus hier landen
Da komme ich auch schon zu meiner ersten Frage. Ich will ein Consolen Quizspiel programmieren zum Einstieg und hänge schon etwas fest. Ich hab zu der Mainklasse 2 zusätzliche Klassen erstellt einmal für die Antwort.txt und einmal für die Fragen.txt.
Nun will es erreichen das er in meiner Main die Eingabe des user mit der ersten oder je nach dem zweiten Zeile in der Antwort.txt vergleicht ob diese richtig ist oder eben nicht. Wenn nicht soll der User noch 2 weitere male die möglichkeit haben auf diese Frage zu Antworten bevor es zu nächsten übergeht.
Wie kann sowas aussehen?
Vielen lieben dank für eure Hilfe im vorraus
Wo genau ist dein Problem? Das Einlesen einer Textdatei? Oder der Ablauf deines Programmes?
Genereller Tipp, taste dich mit kleinen Aufgaben heran. Mach zum Beispiel ein Quiz, das mit hart-kodierten Strings arbeitet und entsprechend nur bei dieser Eingabe positiv verläuft. Dann mach ein Tutorial um Textdateien einzulesen. Danach kannst du im Idealfall das Wissen zusammenführen und dein Quiz vervollständigen.
Erwartest du jetzt ein fertig programmiertes Quiz von uns ? Wie weit bist du ? Hast du schon Code ? Wenn nicht, wieso und woran haperts bei dir genau ?
Ich helfe dir gerne auf die Sprünge, aber versuch dich etwas konkreter auszudrücken. Soll es denn auf jede Frage mehrere Antwortmöglichkeiten geben a la 4 Antworten, eine davon ist richtig ? Wie sehen deine Textdateien denn aus ?
Sry für die magere Fragestellung. Also nein das einlesen ist nicht das Problem. Ich habe bereits via BufferedReader und FileReader die txt drinne und hab auch schon ein wenig rumprobiert und kann diese Zeilen ausgeben lassen. Mein Problem liegt eher darin jetzt zu dem Punkt zu kommen das mein Programm die Eingabe des Users(Die ich auch schon via Scanner intigriert habe) mit eben der Antwort 1 aus der antwort txt zu vergleichen.
EDIT:
@sidi
Nein natürlich erwarte ich kein fertiges Programm, wäre ja etwas sinnfrei dann noch etwas selbst zu tun Ich wills ja selbst können. Aber ein tipp oder ein kleiens Beispiel wie das von statten gehen könnte also die Sache an sich wäre schön
Dazu würde ich dir empfehlen eine Methode zu schreiben, welche gleich bei Programmstart alle Fragen und Antworten in eine Liste<String> speichert z.B. eine ArrayList.
D.h. Programm startet -> Programm iteriert durch jede Zeile in Fragen.txt speichert jede Zeile in die Liste
gleicher Schritt in eine 2. List für die Antworten
Dem user wird also eine Frage gestellt, welche sich in der fragenListe befindet. Seine antwort speicherst du dir in einer temporären String Variable und vergleichst diese mit der Antwort im selben Index der antwortenListe.
Das kannst du über die .equals bzw equalsIgnoreCase (je nach Umsetzung)Methode der String-Klasse erreichen.
Man sollte noch anfügen, dass ein equalsIgnoreCase() auch sinnvoll sein könnte, da wird Groß-/Kleinschreibung nicht beachtet und dementsprechend wird eine Antwort "apfel" auch auf die richrige Antwort "Apfel" passen.
Man sollte noch anfügen, dass ein equalsIgnoreCase() auch sinnvoll sein könnte, da wird Groß-/Kleinschreibung nicht beachtet und dementsprechend wird eine Antwort "apfel" auch auf die richrige Antwort "Apfel" passen.
Hab dir mal was geschrieben woran du dich orientieren kannst. Die alten Hasen werden sicher einige Punkte finden die Verbesserungswürdig sind, dass ist mir bewusst, es geht hierbei nur um die Hilfestellung wie man so etwas angehen kann.
Benötigte Variablen
Java:
ArrayList<String> antworten;
ArrayList<String> fragen;
int currentPos = 0;
Also ich hab jetzt einfach mal nach meinem Stand des Wissens das hier probiert, bitte verbessern wenn nötig. Aber wenn ich mir die Liste jetzt einfach ausgeben wollte grig ich nur Speicherplätze:
Java:
BufferedReader qs = new BufferedReader(new FileReader("fragen.TXT"));
BufferedReader ans = new BufferedReader(new FileReader("antwort.TXT"));
String Fragen;
String Antworten;
String[] qsList;
String[] ansList;
qsList = new String[20];
ansList = new String[20];
for(int i = 0; i < qsList.length; i++)
{
qsList[i] = qs.readLine();
System.out.println(qsList);
}
Wäre das in etwa aber der richtige Ansatz?
EDIT:
Sry hatte nich gesehen das du schon geantwortet hast. das Sieht super aus und ihr habt mir den passenden Denkanstoß gegeben ... Genau das brauchte ich
jetzt bin ich etwas verwirrt. ich bin deinem beispiel so gut wie es geht gefolgt , aber wenn ich jetz in der main "stelleFrage" aufrufen möchte haut das nich hin da bekomm ich immer: