Vokabel Trainer.

09/29/2009 22:07 TheOwnWay#1
Guten Abend,
Ich habe mir überlegt, einen Vokabel Trainer für Latein zu schreiben, jedoch habe ich dazu eine kleine Frage an euch schon was länger sitzenden AutoITlern.


Also, die Vokabeln sind in Lektionen aufgeteilt (durschnittlich 30 pro Lektion).
Diese sollen (per GUI verstellbar) zufällig erscheinen oder nur innerhalb einer Lektion zufällig. Dann erscheint eine InputBox und man gibt die deutsche Bedeutung an, nun kommt eine MsgBox das es falsch ist oder es geht einfach weiter (wenn richtig).
So habe ich mir schonmal überlegt ich fange so an:
PHP Code:
$Lektion1L[1]=Wort1
$Lektion1L
[2]=Wort2

...

$Lektion2L[1]=Wort31
$Lektion2L
[2]=Wort32 
Also mit Arrays. Alles gut in schön.
Dann halt noch die Arrays mit den deutschen Übersetzungen

PHP Code:
$Lektion2D[1]=Wort1Übersetzung
$Lektion2D
[2]=Wort1Übersetzung 
Auch fein. Aufwendig alle Vokabeln einzutippen aber noch einfach.
Jetzt kommt meine Frage:
Muss ich für JEDE Vokabel dann eine if-Schleife schreiben, damit gecheckt wird ob das in der InputBox eingegeben Wort richtig ist? Oder lässt sich das mit Arrays irgendwie verkürzen, vielleicht nur Anzahl der If-Schleifen = Anzahl der Lektionen (halt irgendwie mit Arrays)?
Und nochwas. Ich möchte dann ja alle Vokabeln lernen. Ist es möglich, das dann eine Vokabel erst dann wieder dran kommt, wenn die anderen aufgebraucht sind?
Keine feste Reihenfolge, random!
09/29/2009 22:34 | Moep |#2
Quote:
Originally Posted by Cr0nicl3 View Post
Guten Abend,
Ich habe mir überlegt, einen Vokabel Trainer für Latein zu schreiben, jedoch habe ich dazu eine kleine Frage an euch schon was länger sitzenden AutoITlern.


Also, die Vokabeln sind in Lektionen aufgeteilt (durschnittlich 30 pro Lektion).
Diese sollen (per GUI verstellbar) zufällig erscheinen oder nur innerhalb einer Lektion zufällig. Dann erscheint eine InputBox und man gibt die deutsche Bedeutung an, nun kommt eine MsgBox das es falsch ist oder es geht einfach weiter (wenn richtig).
So habe ich mir schonmal überlegt ich fange so an:
PHP Code:
$Lektion1L[1]=Wort1
$Lektion1L
[2]=Wort2

...

$Lektion2L[1]=Wort31
$Lektion2L
[2]=Wort32 
Also mit Arrays. Alles gut in schön.
Dann halt noch die Arrays mit den deutschen Übersetzungen

PHP Code:
$Lektion2D[1]=Wort1Übersetzung
$Lektion2D
[2]=Wort1Übersetzung 
Auch fein. Aufwendig alle Vokabeln einzutippen aber noch einfach.
Jetzt kommt meine Frage:
Muss ich für JEDE Vokabel dann eine if-Schleife schreiben, damit gecheckt wird ob das in der InputBox eingegeben Wort richtig ist? Oder lässt sich das mit Arrays irgendwie verkürzen, vielleicht nur Anzahl der If-Schleifen = Anzahl der Lektionen (halt irgendwie mit Arrays)?
Und nochwas. Ich möchte dann ja alle Vokabeln lernen. Ist es möglich, das dann eine Vokabel erst dann wieder dran kommt, wenn die anderen aufgebraucht sind?
Keine feste Reihenfolge, random!

Mach doch ein zwei dimensionales array.

Code:
$latein[$lektion][$aufgabe]
$deutsch[$lektion][$aufgabe]
Den String aus der Inputbox kannst du dann ganz einfach mit den String der deutschen übersetzung, welcher den gleichen index wie das lateinische besitzt, vergleichen. Die variabeln könntes du auch in eine ini speichern.
Die lektionen kannst du mit for $lektion = 1 to n nacheinander aufrufen.
Die Aufgaben kannste mit $aufgabe = random(m,n) zufällig aufrufen und die aufgaben nummer in einem array speichern. Wenn die nummer schon im array ist dann mach nochmal random, bis eine gefunden is die noch nicht dran war... Is also alles möglich ;)
09/29/2009 22:40 TheOwnWay#3
2 dimensionales Array...soweit bin ich eigentlich nicht. :D:D Aber da lern ich ja dann sogar noch was zu.
Also, wenn ich das richtig verstehe, wäre das dann so?
PHP Code:
$latein[$1][$sol]
$deutsch[$1][$sonne
Aber das ist doch viel umständlicher.
09/30/2009 18:25 | Moep |#4
Ein zweidimensionales array ist im Grunde nichts anderes als eine Tabelle. Jedes Element einer Tabelle kann man durch die Angabe der Zeile und der Spalte eindeutig zuordenen.

$array2D[$m][$n]
Der Index $m steht für die Zeile und der Index $n für die Spalte.
Die Zeilen unterteilen z.B.die Aufgaben und die Spalten die Lektionen.

z.B. $array2D[0][0]
Wäre die 1te Aufgabe von der 1ten Lektion (Da wir bei 0 anfangen zu deklarieren)

oder

z.B. $array2D[13][4]
Wäre die 14te Aufgabe von der 5ten Lektion

Davon legst du zwei arrays an (man könnte auch nur ein 3D array nehmen)
$latein[$m][$n]
$deutsch[$m][$n]

und deklarierst das deutsche und das dazugehörigen lateinische Wort mit dem selben Index.

$latein[5][2] = "sol"
$deutsch[5][2] = "sonne"

wenn dein Zufallsgenereator nun auf $m = 5 und $n = 2 steht, dann fragst du was $latein[$m][$n] auf deutsch heißt und vergleichst den eingegebenen String mit $deutsch[$m][$n].

[Only registered and activated users can see links. Click Here To Register...]
10/01/2009 05:47 kknb#5
du kannst auch einfach mehrere textdateien anlegen die per zufall ausgewählt werden.

hatte hier mal sowas gepostet aber nur für eine datei, kann man ja einfach erweitern.
[Only registered and activated users can see links. Click Here To Register...]
10/01/2009 13:48 TheOwnWay#6
:awesome:
Danke vielmals, kann ich mir sicherlich nochwas drin abschauen.