Vokabeln Trainer

  • Hallo liebe Community von AutoIT,

    ich möchte für mich ein Programm erstellen, dass bei dem Input-Wert nur auf 1bestimmten reagiert.

    Also, ein Programm womit ich Vokabeln lerne.

    Das soll so funktionieren mit der Input:

    Wenn man die Vokabel richtig eingibt, kommt ein "Richtig" Fesnterchen, und man kann zur nächsten gehen.
    Wenn man sie falsch eingibt, kommt ein "Leider Falsch, du musst besser lernen." Fensterchen, und wenn man darauf klickt, dann geht es ABER AUCH weiter.

    Wie kann ich das für die Input so einstellen?
    MFG EliteMattthias

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Da musst mit Arrays arbeiten

    und mit GUICtrlRead($oInput) = $richtiges Vokabel

    In Etwa so:

    Spoiler anzeigen
    [autoit]

    While 1
    If $aVokabel[0][0] = 0 Then Exit
    $iIndex = Random(1,$aVokabel[0][0],1)
    GUICtrlSetData($oVokabel,$aVokabel[$iIndex][1])
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _exit()
    Case $oBestaetigen
    $aLog[1] += 1
    If GUICtrlRead($oInput) = $aVokabel[$iIndex][2] Then
    MsgBox(64,"","Richtig" & @CRLF & @CRLF & $aVokabel[$iIndex][1] & " bedeutet " & $aVokabel[$iIndex][2])
    _ArrayDelete($aVokabel,$iIndex)
    $aVokabel[0][0] -= 1
    Else
    MsgBox(16,"","Falsch!" & @CRLF & @CRLF & $aVokabel[$iIndex][1] & " bedeutet " & $aVokabel[$iIndex][$iSpalte2] & @CRLF & "und nicht: " & GUICtrlRead($oInput))
    EndIf
    GUICtrlSetData($oInput,"")
    ExitLoop
    EndSwitch
    WEnd
    WEnd

    [/autoit]

    musst du dir halt dann noch anpassen

    $aVokabel ist ein Array, damit musste dich halt noch befassen :huh:

  • Kannst du mir bitte sagen (per Kommentar hinter Variablen) wofür welche ist?!?

    Bzw, was was bedeutet?

    MFG ELiteMattthias

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Spoiler anzeigen
    [autoit]

    While 1 ;Schleife damit das Programm offen bleibt
    If $aVokabel[0][0] = 0 Then Exit ;Wenn keine Vokabel mehr da sind dann Beenden
    $iIndex = Random(1,$aVokabel[0][0],1) ;Per zufall den index(eine Zahl) des nächsten Vokabels bestimmen
    GUICtrlSetData($oVokabel,$aVokabel[$iIndex][1]) ;Das neue Vokabel in eine Label in meiner GUI anzeigen
    While 1 ;Schleife die auf Befehle wartet
    Switch GUIGetMsg() ;Setzt vor jeden Case "GUIGetMsg() = "
    Case $GUI_EVENT_CLOSE ;Wenn Exit gedrückt wird dann programm beenden
    Exit
    Case $oBestaetigen ;Wenn Bestätigen gedrückt wird dann folgendes machen
    ;~ $aLog[1] += 1 ;rausgenommen, das ist was was du nicht brauchst
    If GUICtrlRead($oInput) = $aVokabel[$iIndex][2] Then ;Wenn das was im Input steht, dasselbe ist wie das was in der Spalte 2 des Arrays steht dann:
    MsgBox(64,"","Richtig" & @CRLF & @CRLF & $aVokabel[$iIndex][1] & " bedeutet " & $aVokabel[$iIndex][2]) ;MessageBox die dir sagt, dass das Vokabel stimmt
    _ArrayDelete($aVokabel,$iIndex) ;Das Vokabel aus dem Array löschen, damit es nicht nochmal auftaucht
    $aVokabel[0][0] -= 1 ;die Anzahl der Vokabel verringern, damit der Random-Befehl das nächste mal funkt
    Else ;wenn das was im Input steht nich dasselbe ist wie das was in der Spalte 2 des Arrays steht, dann:
    MsgBox(16,"","Falsch!" & @CRLF & @CRLF & $aVokabel[$iIndex][1] & " bedeutet " & $aVokabel[$iIndex][$iSpalte2] & @CRLF & "und nicht: " & GUICtrlRead($oInput)) Message Box die dir sagt, dass das Vokabel nicht stimmt
    EndIf ;Ende des If(Wenn) Befehls
    GUICtrlSetData($oInput,"") ;Den Input wieder leer machen
    ExitLoop ;Die Schleife die die Befehle erwartet verlassen, damit ein neues Vokabel gesetzt wird
    EndSwitch ;Ende des Switch - Befehls
    WEnd ;Ende der Schleife die die Befehle erwartet, d.h. es spring wieder an den Anfang der inneren Schleife
    WEnd; Ende der Schleife die die Vokabel setzt, d.h. es springt wieder an den anfang dieser SChleife

    [/autoit]