ich würde das ganze folgendermaßen aufbauen:
3 arrays
jeweils eins für jede sprache und eins für anzahl der versuche
also zb
Code:
$ger[3] = ['essen', 'schlafen', 'arbeiten']
$eng[3] = ['eat', 'sleep', 'work']
$try[3] = [1, 1, 1]
jetzt kannst du per Random(0, 2) zb ein englisches bzw deutsches je nachdem wie rum du lernen willst anzeigen lassen, und in einem Edit deine lösung posten.
dann guckst du einfach per GuiCtrlRead($Edit) ob das ergebnis der nummer die du durch random erhalten hast im array entspricht. ist das der fall, erscheint ein richtig, $try[zufallszahl] wird zb -1 gesetzt , und es wird die nächste zufalls zahl generiert. ist die zufallszahl in $cor -1 wird sie direkt übersprungen.
ist das ergebnis falsch erhälst du ein falsch und kannst es vllt nochmal versuchen... aber das entscheidest ja du selbst :P
hier mal ein kleines beispiel wie das ganze aussehen könnte:
Code:
Dim $ger[5] = ['essen', 'schlafen', 'arbeiten', 'fliegen', 'lachen']
Dim $eng[5] = ['eat', 'sleep', 'work', 'fly', 'lol']
Dim $try[5] = [1, 1, 1, 1, 1]
Dim $rand
GUICreate('Vokabel Trainer', 265, 90, -1, -1, 0x10080000)
GUICtrlCreateGroup('Englisch', 10, 10, 110, 40)
$englisch = GUICtrlCreateLabel('', 15, 25, 100, 20)
GUICtrlCreateGroup('Deutsch', 140, 10, 110, 40)
$deutsch = GUICtrlCreateInput('', 145, 25, 100, 20)
$rand = Random(0, UBound($ger))
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $deutsch
If GUICtrlRead($deutsch) = $ger[$rand] Then
GUICtrlSetData($deutsch, '')
MsgBox(0, 'Richtig', 'Du hast die gesuchte Lösung in '&$try[$rand]&' Versuchen gefunden')
$try[$rand] = -1
Else
GUICtrlSetData($deutsch, '')
MsgBox(0, 'Falsch', 'Leider war dies nicht die gesuchte Lösung.'&@CRLF&'Die richtige Lösung wäre '&$ger[$rand]&'.')
$try[$rand] += 1
EndIf
$rand = Random(0, UBound($ger))
Case Else
If $try[$rand] = -1 Then $rand = Random(0, UBound($ger))
If GUICtrlRead($englisch) <> $eng[$rand] Then GUICtrlSetData($englisch, $eng[$rand])
If Done() Then
MsgBox(0, 'Info', 'Du hast alle Lösungen gefunden. Das Programm wird nun beendet.')
ExitLoop
EndIf
EndSwitch
WEnd
Func Done()
For $i=0 To UBound($try)-1
If $try[$i] <> -1 Then Return False
Next
Return True
EndFunc
natürlich kann man die arrays auch in dateien speichern. hierbei würde ich aber von inis abraten, und die datei die du anlegst in einem eigenem format speichern.