Vokabeltrainer

  • Hi,
    ich bin z.Z. ein totaler au3 Anfänger und habe mir gestern mal einen Vokabeltrainer zusammengebastelt. Nun möchte ich aber das man die Vokabeln selbst in eine Textdatei schreibt die man üben möchte und das Programm dann Zufallsweise 10 von den ganzen Vokabeln raussucht.

    Hier mal mein bisheriger Code:

    [autoit]

    $counter = 0
    MsgBox(0,"Vokabeltrainig","Willkommen zum französischen Vokabeltraing.")
    MsgBox(0,"Vokabeltraining","Der Vokabeltrainer sagt Wörter und du musst sie immer in der anderen Sprache schreiben; Wenn deutsches Wort dann französisch, wenn französisches Wort dann deutsch; Denke dran: Alle französischen Wörter werden klein geschrieben und achte auch bei den deutschen Nomen das sie groß geschrieben werden.")
    ; Aufgabe 1
    MsgBox(0,"Guten Tag","Guten Tag (Erwachsener,Fremder)")
    $vokabel_1 = InputBox("","Guten Tag (Erwachsener,Fremder)", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel_1 = ("bonjour") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 2
    MsgBox(0,"Ja","Ja")
    $vokabel = InputBox("","Ja", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel = ("oui") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 3
    MsgBox(0,"Katze","Katze")
    $vokabel = InputBox("","Katze", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel = ("chat") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 4
    MsgBox(0,"Silence","Silence")
    $vokabel_1 = InputBox("","Silence", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel_1 = ("Ruhe") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 5
    MsgBox(0,"Ich(betont)","Ich(betont")
    $vokabel_1 = InputBox("","Ich(betont)", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel_1 = ("Moi") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 6
    MsgBox(0,"garÇon","garÇon")
    $vokabel_1 = InputBox("","garÇon", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel_1 = ("Junge") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 7
    MsgBox(0,"Herr","Herr")
    $vokabel_1 = InputBox("","Herr", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel_1 = ("monsieur") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 8
    MsgBox(0,"sympatisch","sympatisch(lange Form)")
    $vokabel_1 = InputBox("","sympatisch(lange Form)", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel_1 = ("sympatique") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 9
    MsgBox(0,"rue","rue")
    $vokabel_1 = InputBox("","rue", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel_1 = ("Straße") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    ; Aufgabe 10
    MsgBox(0,"drei","drei")
    $vokabel_1 = InputBox("","drei", "")

    [/autoit][autoit][/autoit][autoit]

    If $vokabel_1 = ("trois") Then
    $counter = $counter +1
    Endif

    [/autoit][autoit][/autoit][autoit]

    MsgBox (0,"Aufgaben", "Du hast " & $counter & " von 10 Aufgaben richtig")

    [/autoit]

    Nun fragt er ja nur das ab was ich ihm sage und es wäre bei dem Nutzer immer das selbe. Weiß vielleicht wer wie ich das hinbekomme das er aus ner Textdatei zufällig 10 Vokabeln auswählt und diese dann nimmt?

    Grüße
    Baaam

  • Hallo,
    sehr schönes Projekt zum Üben und Einsteigen!

    Zunächst würde ich mir Gedanken über den eigentlichen Programmablauf machen, d.h. wie soll der Benutzer das Programm verwenden. Du hast ja selbst gesehen, daß mit den vielen Messageboxen kein "flüssiges" lernen zu machen ist.
    Beim Lernen sehr wichtig ist ein Belohnungssystem, also etwas ähnliches wie eine Highscoreliste sollte auch dabei sein, ggf. auch verschiedene "Wettbewerbe", die meisten Vokabeln in 2 Minuten, oder die meisten richtigen Antworten in Folge usw.

    Danach geht es um das "einfache Nachfüllen" der Vokabeln und Übersetzungen. Ggf gibt es ja "online" irgendwo im Netz schon Vokabellisten zu Deinem Thema, die du dann nur noch in deine Liste aufnehmen musst. Da wären wir schon bei der Liste, ich würde die Vokabeln in eine oder mehrere Dateien aufteilen.
    Um die Vokabeln in die Dateien reinzubekommen, sollte in Deinem Vokabeltrainer auch ein Eingabe-Modul dafür vorgesehen sein.

    Das ist schon mal viel Stoff für einen Anfänger^^

    Nun die Zusammenfassung, jeweils Frage und Lösung, ganz zum Schluss kommt dann die Programm-Syntax (die Befehle in AutoIt)
    Wie soll das Programm funktionieren?
    - Programm starten
    - Programm liest Vokabel und Übersetzung aus einer Datei
    - Programm fragt ab, ob Vokabel oder Übersetzung gelernt werden soll (oder legt das zufällig fest^^ )
    - Programm zeigt je nach Auswahl die Vokabel oder Übersetzung
    - Eingabe der Antwort
    - Programm vergleicht Antwort mit "richtiger" Antwort aus der Datei
    - Wenn Antwort richtig, dann gibts Belohnungspunkte
    - wenn Antwort falsch, dann richtige Lösung zeigen
    - nächstes Vokabelpaar aus der Datei lesen
    - solange weitermachen bis keine Vokabeln mehr in der Datei sind oder der User das Programm abbricht

    So, das ist der ungefähre Ablauf, und nun die Syntax.
    Ich schreibe dir kein vollständiges Script auf sondern nur AutoIt-Funktionen. Schau mal in der Hilfe nach, einfach nur auf den Funktionsnamen klicken in deinem Browser. Wenn du Scite nutzt, dann den Mauscursor dort auf den Funktionsnamen setzen und F1 drücken.

    [autoit]

    fileopen() fileread() filereadline() fileclose() ;Dateien öffnen und Daten lesen
    For To Next ;Schleife um Funktionen zu wiederholen
    Do Until ;Schleife um Funktionen zu wiederholen
    While Wend ;Schleife um Funktionen zu wiederholen

    [/autoit]


    So, das sollte reichen fürs erste^^

    Du siehst, die Schleife ist wichtig, damit du nur EINMAL im Programmablauf eine Abfrage und eine Ausgabe hast.
    Dann wird dein Programm wesentlich kürzer...ca 10-20 Zeilen sollten reichen....

    ciao
    Andy