Hallo zusammen!
Ich soll als "kleines Projekt" einen Vokabeltrainer bauen.
Eine Bedingung lautet, dass eine Vokabel, die bereits 3x in der laufenden Session gelöst wurde, nicht noch einmal abgefragt werden soll.
Kurz als grobe Übersicht:
Ich habe ein Array gebaut in dem jedes Feld ein Vokabelpaar (deutsch-englisch bzw. umgekehrt) darstellt. Dem konstruktor wird die deutsche sowie die englische Vokabel übergeben. Dazu noch einen Zähler für die Fehler (wenn sie falsch übersetzt wurde) und einen Zähler für die Box (nach dem klassischen Karteikartensystem) der hochgezählt wird, sofern eine Vokabel richtig beantwortet wurde.
Hier mal ein kurzer Snippet, wie die Vokabeln abgefragt werden:
Zur Erklärung:
vokabeln[] ist das Array mit allen dem Programm verfügbaren Vokabeln (50 stk, eingelesen via Dateizugriff)
indizes[] ist ein integer-Array, welches mit Zufallswerten gefüllt wird, damit Variation ins Spiel kommt. Gleichzeitig wird bei der Erzeugung dieses Arrays darauf geachtet, dass eine Vokabel nicht 2x aus dem Pool gezogen werden kann.
Zeiger ist einfach nur ein ... ja... Zeiger auf die entsprechende Vokabel ;D
In welcher Box sich die Vokabel zur Zeit befindet wird folgendermaßen abgefragt:
Beispiel: Unsere Session besteht aus 3 Vokabeln. Die erste Vokabel haben wir 2x richtig (Box2) die zweite 3x richtig(Box 3) und die dritte einmal richtig (Box 1).
Beim nächsten durchlauf soll die zweite Vokabel nun nicht mehr abgefragt werden, da sie quasi "gelernt" ist. Man könnte denken "easy!"
. Das wird aber zum Problem, wenn die letzte Vokabel des Arrays 3x gelöst wird (outofbound). Nun die Idee: "Ok!"
Was aber, wenn die Vokabel davor EBENSO schon 3x gelöst wurde(selbes gilt fuer zeiger++)?
Ich hoffe man versteht meine Problematik
Ich würde gerne etwas bauen, was mir eine Zufallszahl aus den VERBLEIBENDEN Indizes zieht und die entsprechende Vokabel ausgibt.
Ich hoffe ihr könnt mir einen kleinen Schubs in die richtige Richtung geben
Ich soll als "kleines Projekt" einen Vokabeltrainer bauen.
Eine Bedingung lautet, dass eine Vokabel, die bereits 3x in der laufenden Session gelöst wurde, nicht noch einmal abgefragt werden soll.
Kurz als grobe Übersicht:
Ich habe ein Array gebaut in dem jedes Feld ein Vokabelpaar (deutsch-englisch bzw. umgekehrt) darstellt. Dem konstruktor wird die deutsche sowie die englische Vokabel übergeben. Dazu noch einen Zähler für die Fehler (wenn sie falsch übersetzt wurde) und einen Zähler für die Box (nach dem klassischen Karteikartensystem) der hochgezählt wird, sofern eine Vokabel richtig beantwortet wurde.
Hier mal ein kurzer Snippet, wie die Vokabeln abgefragt werden:
Java:
for (int zeiger = 0; zeiger <indizes.length; zeiger++){
System.out.println(vokabeln[indizes[zeiger]].getdeutsch());
System.out.print("Ihre eingabe: ");
String eingabe = ein.next();
if(vokabeln[indizes[zeiger]].checkEnglisch(eingabe)){
System.out.println("Richtig!");
vokabeln[indizes[zeiger]].boxUp();
}
else{
System.out.println("Ihre Antwort war leider falsch.\nDie richtige antwort lautet: "+vokabeln[indizes[zeiger]].getenglisch());
vokabeln[indizes[zeiger]].fehlerUp();
}
}
vokabeln[] ist das Array mit allen dem Programm verfügbaren Vokabeln (50 stk, eingelesen via Dateizugriff)
indizes[] ist ein integer-Array, welches mit Zufallswerten gefüllt wird, damit Variation ins Spiel kommt. Gleichzeitig wird bei der Erzeugung dieses Arrays darauf geachtet, dass eine Vokabel nicht 2x aus dem Pool gezogen werden kann.
Zeiger ist einfach nur ein ... ja... Zeiger auf die entsprechende Vokabel ;D
In welcher Box sich die Vokabel zur Zeit befindet wird folgendermaßen abgefragt:
Java:
public boolean skip(){
if (this.box==2){
return true;
}
else{
return false;
}
}
Beispiel: Unsere Session besteht aus 3 Vokabeln. Die erste Vokabel haben wir 2x richtig (Box2) die zweite 3x richtig(Box 3) und die dritte einmal richtig (Box 1).
Beim nächsten durchlauf soll die zweite Vokabel nun nicht mehr abgefragt werden, da sie quasi "gelernt" ist. Man könnte denken "easy!"
Java:
zeiger++
Java:
if(zeiger==indizes.length){
zeiger--
}
Ich hoffe man versteht meine Problematik
Ich würde gerne etwas bauen, was mir eine Zufallszahl aus den VERBLEIBENDEN Indizes zieht und die entsprechende Vokabel ausgibt.
Ich hoffe ihr könnt mir einen kleinen Schubs in die richtige Richtung geben
Zuletzt bearbeitet von einem Moderator: