2D - Array und Auslesen

  • Halloo :)


    Ich hab mich jetzt erstmals mit Array's beschäftigt und bin, glaub ich, knapp am Ziel vorbei....

    Ich wollte ein Programm schreiben welches mittels "Random()" eine zufällige Frage aussucht, diese in eine Editbox schreibt (GUICTRLSetData) und auf das Drücken der "0D" - Taste(Enter) hin eine Inputbox mit der Antwort abfragt.

    Die Fragen und Antworten habe ich in ein 2-Dimensionales Array gepackt.
    ---->

    Spoiler anzeigen
    [autoit]

    Local $mA[5][2]

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

    $mA[0][0] = "Frage1"
    $mA[0][1] = "Antwort1"
    $mA[1][0] = "Frage2"
    $mA[1][1] = "Antwort2"
    $mA[2][0] = "Frage3"
    $mA[2][1] = "Antwort3"
    $mA[3][0] = "Frage4"
    $mA[3][1] = "Antwort4"
    $mA[4][0] = "Frage5"
    $mA[4][1] = "Antwort5"

    [/autoit]


    Ich kann den Inhalt auch auslesen:
    ---->

    Spoiler anzeigen
    [autoit]

    For $i = 0 To UBound($mA) -1
    For $k = 0 To UBound($mA,2) -1
    $Test = ($mA[$i][$k] & @CRLF)
    ConsoleWrite($Test)
    Next
    Next

    [/autoit]


    Nun weiß ich nur nicht, wie ich die zufällige Auswahl einer Frage machen und die dazu passende Antwort abfragen kann.
    Es würd mich freuen wenn mir das jemand so erklären könnte, dass ich es versteh :whistling:


    Hier der gesamte Code mit Beschreibung:

    ---->

    Spoiler anzeigen
    [autoit]

    ;~ =================================
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <array.au3>
    ;~ =================================

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

    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage", 24, 392, 185, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 24, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("Antwort", 16, 184, 185, 27, BitOR($ES_CENTER,$WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_BORDER), 0)
    GUICtrlSetData(-1, "Liste")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_BORDER), 0)
    GUICtrlSetData(-1, "Frage")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $x = 0
    GUISetState()
    ;~ ===================================================================================================================================

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

    ;~ ====================================
    Local $mA[5][2]

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

    $mA[0][0] = "Frage1"
    $mA[0][1] = "Antwort1"
    $mA[1][0] = "Frage2"
    $mA[1][1] = "Antwort2"
    $mA[2][0] = "Frage3"
    $mA[2][1] = "Antwort3"
    $mA[3][0] = "Frage4"
    $mA[3][1] = "Antwort4"
    $mA[4][0] = "Frage5"
    $mA[4][1] = "Antwort5"

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

    For $i = 0 To UBound($mA) -1
    For $k = 0 To UBound($mA,2) -1
    $Test = ($mA[$i][$k] & @CRLF)
    ConsoleWrite($Test)
    Next
    Next
    ;~ ====================================

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

    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $frage_button
    $fRandom = GUICtrlRead(Random(Zufällige Frage(aus Array)))
    GUICtrlSetState($Frage,$fRandom)
    Case $loesung_button
    $aRead = GUICtrlRead(richtige Antwort)
    GUICtrlSetData($Liste,$aRead & @CRLF)

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

    Case $x
    If _ispressed("0D",$vDLL) Then
    $aRead = GUICtrlRead($Antwort)
    Else
    If $aRead <> richtige Antwort(aus Array) Then
    GUICtrlSetState($Liste,"Falsche Antwort!"
    ElseIf
    $aRead = richtige Antwort(aus Array) Then
    GUICtrlSetState($Liste,"Richtige Antwort!"
    EndIf
    EndIf
    EndSwitch
    WEnd
    ;~ =======================================================================

    [/autoit]


    Hier noch einige Bilder von dem GUI:
    http://www.imgbox.de/ http://www.imgbox.de/


    Ich würd mich über Rückmeldungen freuen :)

    Grüßé Stoaní


    PS.: Es geht ums lernen nicht ums haben :)

    mfg, Stoani

    3 Mal editiert, zuletzt von Stoani (6. November 2011 um 22:49) aus folgendem Grund: Von BugFix gut beantwortet! Danke!

    • Offizieller Beitrag

    Wenn du eine zufällige Frage stellen willst gehst du ja so vor:
    - Index ermitteln:
    $index = Random(0, Ubound($array)-1, 1)
    - Frage aus Array[$index][0] lesen und in der GUI anzeigen
    - Antwort mit Array[$index][1] vergleichen.

    Sollte doch nicht so schwer werden, das jetzt in Code zu packen. ;)

  • [autoit]

    $index = Random(0, Ubound($mA)-1, 1)
    MsgBox(0,"",$index)
    $aRead = $mA[$index][0]
    GUICtrlSetData($Frage,$aRead)

    [/autoit]


    Danke für die Geduld :S


    EDIT_1_________________________________________________________________________________________________________________________________
    Es stimmt eh alles.
    Fehler:

    $Index 0 = Zeile 1


    EDIT_2_________________________________________________________________________________________________________________________________
    Irgendwie komme ich immer auf "AntwortRead <> Antwort"

    Mag mal jemand drüberlesen?
    ---->

    Spoiler anzeigen
    [autoit]

    ;~ =================================
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage",10 , 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER,$WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Go!", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read = GUICtrlRead($Antwort), $index
    ;~ ====================================
    Global $mA[5][2]

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

    $mA[0][0] = "Wie lange ist der Korpus?"
    $mA[0][1] = "356mm"
    $mA[1][0] = "Wie lange ist die Korpusmensur?"
    $mA[1][1] = "195mm"
    $mA[2][0] = "Wie lange ist die Halsmensur?"
    $mA[2][1] = "130mm"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13mm"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14mm"
    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    $index = Random(0, Ubound($mA)-1, 1)
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage,$cRead)
    Case $loesung_button
    Case $go_button
    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste,"Falsche Antwort!")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste,"Richtige Antwort!")
    EndIf
    EndSwitch
    WEnd
    ;~ =======================================================================

    [/autoit]


    Danke


    PS.: Die Antworten stehen im Skript ;)

    mfg, Stoani

    Einmal editiert, zuletzt von Stoani (6. November 2011 um 22:49)

    • Offizieller Beitrag

    Du mußt erst mal das Input mittels GUiCtrlRead auslesen und dann mit dem Arrayeintrag vergleichen.
    Im Augenblick wird $Read bei Scriptstart 1 mal gelesen und zwar bevor irgendwas eingegeben wurde.
    Somit ist $Read immer leer.

  • Zeile 33 so ändern:

    [autoit]

    Global $Read, $index

    [/autoit]


    Hinter Zeile 58 (Case go_button):

    [autoit]

    $Read = GUICtrlRead($Antwort)

    [/autoit]

    MfG LuBu

  • Danke!

    Genau das wars Problem.


    Funktioniert jetzt ganz gut!

    (AutoIT geht grad ned?!)

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage",10 , 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER,$WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Go!", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0
    ;~ ====================================
    Global $mA[14][2]

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356mm"
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195mm"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130mm"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13mm"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14mm"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19mm"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21mm"
    $mA[7][0] = "Wie hoch ist der Randüberstand ?"
    $mA[7][1] = "6mm"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270mm"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23,5mm"
    $mA[10][0] = "Wie breit ist das Griffbrett am Hals. -Korpusübergang ?"
    $mA[10][1] = "42mm"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5mm"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0,5mm"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0,7mm"




    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    $index = Random(0, Ubound($mA)-1, 1)
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage,$cRead)
    Case $loesung_button
    $i = $i + 1
    ConsoleWrite($i)
    If $i = 10 Then
    MsgBox(0,"","Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    $i = 0
    Exit
    EndIf


    GUICtrlSetData($Liste,"Die Lösung ist: "&$mA[$index][1])
    Case $go_button
    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste,"Falsche Antwort!"&@CRLF&"Lösung anzeigen?")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste,"Das Maß beträgt "&$Read&"!"&@CRLF&"Richtige Antwort!")
    EndIf
    EndSwitch
    WEnd


    Hat jemand einen Denkansatz für meinen nächsten Schritt?

    Das ganze wird nun "Random" ausgewählt.
    Jetzt kommt es aber vor, dass eine Frage 3mal hintereinander kommt und eine andere so gut wie gar nie.
    Könnte man etwas machen, um die Frage aus dem Array zu nehmen wenn sie richtig beantwortet wurde?

    So in etwa?

    [autoit]

    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste,"Falsche Antwort!"&@CRLF&"Lösung anzeigen?")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste,"Das Maß beträgt "&$Read&"!"&@CRLF&"Richtige Antwort!")
    _ArrayDelete($mA,$index)
    EndIf

    [/autoit]

    Grüße Stoani

    mfg, Stoani

  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage", 10, 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER, $WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Go!", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0
    ;~ ====================================
    Global $mA[14][3]

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

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356mm"
    $mA[0][2] = 0
    $mA[1][2] = 0
    $mA[2][2] = 0
    $mA[3][2] = 0
    $mA[4][2] = 0
    $mA[5][2] = 0
    $mA[6][2] = 0
    $mA[7][2] = 0
    $mA[8][2] = 0
    $mA[9][2] = 0
    $mA[10][2] = 0
    $mA[11][2] = 0
    $mA[12][2] = 0
    $mA[13][2] = 0
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195mm"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130mm"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13mm"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14mm"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19mm"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21mm"
    $mA[7][0] = "Wie hoch ist der Randüberstand ?"
    $mA[7][1] = "6mm"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270mm"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23,5mm"
    $mA[10][0] = "Wie breit ist das Griffbrett am Hals. -Korpusübergang ?"
    $mA[10][1] = "42mm"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5mm"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0,5mm"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0,7mm"
    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    For $i = 100; sucht eine Zahl, bis eine noch nicht gestellte Frage gefunden wurde
    $index = Random(0, UBound($mA) - 1, 1)
    If $mA[$index][2] = 0 Then ExitLoop
    Next
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1 ; setzt Frage als bereits gestellt
    Case $loesung_button
    $i = $i + 1
    ConsoleWrite($i)
    If $i = 10 Then
    MsgBox(0, "", "Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    $i = 0
    Exit
    EndIf
    GUICtrlSetData($Liste, "Die Lösung ist: " & $mA[$index][1])
    Case $go_button
    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste, "Falsche Antwort!" & @CRLF & "Lösung anzeigen?")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste, "Das Maß beträgt " & $Read & "!" & @CRLF & "Richtige Antwort!")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    ich hab dein Array um eine Spalte erweitert, die Änderungen habe ich kommentiert, sollte eigentlich einleuchtend sein

  • 1C:\Users\*******\********\**********\1 (2).au3 (85) : ==> "For" statement is badly formatted.:
    For $i = 100
    For $i = 100^ ERROR
    >Exit code: 1 Time: 5.019

    EDIT===========================

    Das funktioniert nur beim ersten Array:

    [autoit]

    For $i = 100 To $index = Random(0, UBound($mA) - 1, 1)
    If $mA[$index][2] = 0 Then ExitLoop
    Next
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1

    [/autoit]

    mfg, Stoani

    Einmal editiert, zuletzt von Stoani (7. November 2011 um 13:50)

  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage", 10, 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER, $WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Go!", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0
    ;~ ====================================
    Global $mA[14][3]

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

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356mm"
    $mA[0][2] = 0
    $mA[1][2] = 0
    $mA[2][2] = 0
    $mA[3][2] = 0
    $mA[4][2] = 0
    $mA[5][2] = 0
    $mA[6][2] = 0
    $mA[7][2] = 0
    $mA[8][2] = 0
    $mA[9][2] = 0
    $mA[10][2] = 0
    $mA[11][2] = 0
    $mA[12][2] = 0
    $mA[13][2] = 0
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195mm"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130mm"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13mm"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14mm"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19mm"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21mm"
    $mA[7][0] = "Wie hoch ist der Randüberstand ?"
    $mA[7][1] = "6mm"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270mm"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23,5mm"
    $mA[10][0] = "Wie breit ist das Griffbrett am Hals. -Korpusübergang ?"
    $mA[10][1] = "42mm"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5mm"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0,5mm"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0,7mm"
    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    Do; sucht eine Zahl, bis eine noch nicht gestellte Frage gefunden wurde
    $index = Random(0, UBound($mA) - 1, 1)
    Until $mA[$index][2] = 0
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1 ; setzt Frage als bereits gestellt
    Case $loesung_button
    $i = $i + 1
    ConsoleWrite($i)
    If $i = 10 Then
    MsgBox(0, "", "Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    $i = 0
    Exit
    EndIf
    GUICtrlSetData($Liste, "Die Lösung ist: " & $mA[$index][1])
    Case $go_button
    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste, "Falsche Antwort!" & @CRLF & "Lösung anzeigen?")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste, "Das Maß beträgt " & $Read & "!" & @CRLF & "Richtige Antwort!")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Hatte extra eine Forschleife genommen aber wohl das To vergessen ^^

    Wenn alle Fragen gestellt wurden ( 13 Fragen, 100 mal zufall sollte eigentlich passen) wählt er eine Frage nochmals aus.
    Die While Do Schleife wird aber niemals beendet, wenn alle Fragen gestellt wurden

    Also einfach die Forschleife so ändern:

    [autoit]

    For $i = 1 To 100

    [/autoit]
  • Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 490, 440, 400, 180)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Neue Frage", 10, 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER, $WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 265, 409, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Go!", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0, $counter = 0
    ;~ ====================================
    Global $mA[14][3]

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

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356mm"
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195mm"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130mm"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13mm"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14mm"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19mm"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21mm"
    $mA[7][0] = "Wie hoch ist der Randüberstand ?"
    $mA[7][1] = "6mm"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270mm"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23,5mm"
    $mA[10][0] = "Wie breit ist das Griffbrett am Hals. -Korpusübergang ?"
    $mA[10][1] = "42mm"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5mm"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0,5mm"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0,7mm"

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

    For $i = 0 To UBound($mA) - 1
    $mA[$i][2] = 0
    Next
    ;~ =======================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    $counter += 1
    If $counter <= UBound($mA) Then
    Do
    $index = Random(0, UBound($mA) - 1, 1)
    Until $mA[$index][2] = 0
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1 ; setzt Frage als bereits gestellt
    Else
    MsgBox(0, 0, "Keine weiteren Fragen vorhanden")
    EndIf
    Case $loesung_button
    $i = $i + 1
    ConsoleWrite($i)
    If $i = 10 Then
    MsgBox(0, "", "Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    $i = 0
    Exit
    EndIf
    GUICtrlSetData($Liste, "Die Lösung ist: " & $mA[$index][1])
    Case $go_button
    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    GUICtrlSetData($Liste, "Falsche Antwort!" & @CRLF & "Lösung anzeigen?")
    ElseIf $Read = $mA[$index][1] Then
    GUICtrlSetData($Liste, "Das Maß beträgt " & $Read & "!" & @CRLF & "Richtige Antwort!")
    EndIf
    EndSwitch
    WEnd

    [/autoit]


    Wählt eine Frage nur, wenn es noch ungestellte Fragen gibt.

  • Erstmal danke für die Hilfe @all (besonders an i2c)

    Das Programm ist derweilen so weit:

    - Namen der Person speichern
    - Fragen generieren (bis keine mehr da sind)
    - Die Lösung bis zu 10 mal verwendbar (je nach Einstellung)
    - Speichern ob richtig oder falsch
    - Editbox Counter der Fragen
    - 29 Fragen im Array
    - Auswerten des Ergebnisses
    - Speichern des Ergebnisses in einem .txt-File

    Würd mich freuen, wenn ein paar von euch das Ganze testen, um die gröbsten Bugs rauszufinden.


    Hier der Code:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <array.au3>
    ;~ ===================================================================================================================================
    $input = InputBox("Highscore","Gib hier deinen Namen ein!","")

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

    $vDLL = 'user32.dll'
    $Masze = GUICreate("Maße", 600, 440, 400, 180)
    GUISetIcon(@ScriptDir&"\data\Ma%C3%9Fe.ico",$Masze)
    GUISetBkColor(0x000000)
    $bImg = GUICtrlCreatePic("C:\Users\Stoani\Pictures\asdasd.jpg", 0, 0, 490, 440)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $frage_button = GUICtrlCreateButton("Frage stellen", 10, 392, 196, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $loesung_button = GUICtrlCreateButton("Lösung zeigen", 10, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    $Antwort = GUICtrlCreateInput("", 16, 184, 185, 27, BitOR($ES_CENTER, $WS_BORDER), 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $Liste = GUICtrlCreateEdit("", 216, 16, 365, 409, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $WS_BORDER), 0)
    GUICtrlSetData(-1, "Noch keine Frage gestellt!")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $Frage = GUICtrlCreateEdit("", 16, 16, 185, 57, BitOR($ES_CENTER, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_BORDER), 0)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUICtrlSetColor(-1, 0x000000)
    $go_button = GUICtrlCreateButton("Bestätigen", 109, 352, 97, 33)
    GUICtrlSetFont(-1, 12, 400, 0, "Tw Cen MT Condensed")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0, $counter = 0, $true = 0, $false = 0, $input
    ;Damit kein "," in AutoIt gelangt!====================================================================================
    HotKeySet("{,}","Komma")
    HotKeySet("{NUMPADDOT}","Komma")
    Func Komma()
    Send(".")
    EndFunc
    ;===================================================================================================================
    Global $mA[29][3]

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

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356"
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21"
    $mA[7][0] = "Wie hoch ist der Halsüberstand ?"
    $mA[7][1] = "6"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23.5"
    $mA[10][0] = "Wie breit ist das Griffbrett am Ende?"
    $mA[10][1] = "42"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0.5"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0.7"
    $mA[14][0] = "Radius der Griffbrettrundung ?"
    $mA[14][1] = "42"
    $mA[15][0] = "Wie hoch ist die Griffbrettprojektion ?"
    $mA[15][1] = "27"
    $mA[16][0] = "Wie lange ist die Mensur ?"
    $mA[16][1] = "330"
    $mA[17][0] = "Abstand vom Steg zum Saitenhalter ?"
    $mA[17][1] = "55"
    $mA[18][0] = "Saitenband am Sattel ?"
    $mA[18][1] = "16.3"
    $mA[19][0] = "Saitenband am Steg ?"
    $mA[19][1] = "33.5"
    $mA[20][0] = "Abstand von Saite zu Saite am Steg ?"
    $mA[20][1] = "11.5"
    $mA[21][0] = "Saitenlage bei Stahlsaiten [Diskantsaite] ?"
    $mA[21][1] = "3.5"
    $mA[22][0] = "Saitenlage bei Darmsaiten [Diskantsaite] ?"
    $mA[22][1] = "2.5"
    $mA[23][0] = "Saitenlage bei Stahlsaiten [Basssaite] ?"
    $mA[23][1] = "4"
    $mA[24][0] = "Saitenlage bei Darmsaiten [Basssaite] ?"
    $mA[24][1] = "5.5"
    $mA[25][0] = "Wieviel Grad beträgt der Saitenknickwinkel ?"
    $mA[25][1] = "158"
    $mA[26][0] = "Wie stark ist der Steg an der Oberseite ?"
    $mA[26][1] = "1.3"
    $mA[27][0] = "Wie stark sind die Stegfüße ?"
    $mA[27][1] = "4.2"
    $mA[28][0] = "Wie hoch ist der Steg ?"
    $mA[28][1] = "32"

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

    For $i = 0 To UBound($mA) - 1
    $mA[$i][2] = 0
    Next
    ;~ =======================================================================
    $i = 0
    $false = 0
    $true = 0
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    GUICtrlSetData($Liste,29 - $counter&"/29 verbleibend")
    GUICtrlSetState($go_button, $GUI_ENABLE)
    $counter += 1
    If $counter <= UBound($mA) Then
    Do
    $index = Random(0, UBound($mA) - 1, 1)
    Until $mA[$index][2] = 0
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1 ; setzt Frage als bereits gestellt
    ConsoleWrite($mA[$index][0]&@CRLF&$mA[$index][1]&@CRLF)
    Else
    If $true >= 28 Then
    If $i <= 5 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 1 !")
    EndIf
    ElseIf $true <= 15 Then
    GUICtrlSetData($Liste,"Du hast mehr als die Hälfte der Fragen falsch beantwortet!"&@CRLF&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 5 !"&@CRLF&"Versuch es nocheinmal!")
    ElseIf $true >= 25 Then
    If $i <= 6 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 2 !")
    EndIf
    ElseIf $true >= 22 Then
    If $i <= 7 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 3 !")
    EndIf
    ElseIf $true >= 19 Then
    If $i <= 8 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 4 !"&@CRLF&"Ich glaub du kannst das besser!")
    EndIf
    EndIf
    FileWriteLine("Highscore.txt",$input&" hat "&$true&"/29 Fragen richtig beantwortet und die Lösung "&$i&" mal verwendet.")
    EndIf
    Case $loesung_button
    $i = $i + 1
    If $i = 10 Then
    MsgBox(0, "", "Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    Exit
    EndIf
    GUICtrlSetData($Liste, "Die Lösung ist: " & $mA[$index][1]&"mm")
    Sleep(4000)
    ControlClick("Maße","Frage stellen",4,"Left",1)
    Case $go_button

    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    $false = $false +1 ;Zählt wie oft die Antwort falsch war.
    GUICtrlSetState($go_button, $GUI_DISABLE)
    GUICtrlSetData($Liste, "Falsche Antwort!" & @CRLF & "Lösung anzeigen?")
    ConsoleWrite("False"&@CRLF)
    GUICtrlSetData($Antwort,"")
    ElseIf $Read = $mA[$index][1] Then
    $true = $true + 1
    GUICtrlSetData($Liste, "Das Maß beträgt " & $Read & "mm!" & @CRLF & "Richtige Antwort!")
    ConsoleWrite("True"&@CRLF)
    GUICtrlSetState($go_button, $GUI_DISABLE)
    GUICtrlSetState($frage_button, $GUI_DISABLE)
    Sleep(3000)
    GUICtrlSetState($go_button, $GUI_ENABLE)
    GUICtrlSetState($frage_button, $GUI_ENABLE)
    ControlClick("Maße","Frage stellen",4,"Left",1)
    GUICtrlSetData($Antwort,"")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    ________________________________________EDIT_______________________________________________________

    Hier die neue Version mit neuem GUI:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <array.au3>
    ;~ =====================
    $input = InputBox("Highscore","Gib hier deinen Namen ein!","")
    $vDLL = 'user32.dll'
    $Form1 = GUICreate("Maße", 1001, 701, 265, 114)
    GUISetBkColor(0x800000)
    $Pic1 = GUICtrlCreatePic(@ScriptDir&"\data\b_img_02.jpg", 0, 0, 1000, 700)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Frage = GUICtrlCreateEdit("", 200, 50, 600, 80, BitOR($ES_CENTER,$ES_READONLY,$ES_WANTRETURN), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetData(-1, StringFormat("\r\n"))
    GUICtrlSetFont(-1, 16, 800, 0, "Tw Cen MT")
    GUICtrlSetColor(-1, 0x000000)
    $frage_button = GUICtrlCreateButton("Next --->", 800, 600, 140, 40)
    GUICtrlSetFont(-1, 14, 800, 0, "Tw Cen MT")
    $Liste = GUICtrlCreateEdit("", 200, 300, 600, 260, BitOR($ES_CENTER,$ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetData(-1, "Starten Sie den Trainer indem Sie auf den"& " Next-Button " &"klicken")
    GUICtrlSetFont(-1, 16, 800, 0, "Tw Cen MT")
    GUICtrlSetColor(-1, 0x000000)
    $Antwort = GUICtrlCreateEdit("", 400, 150, 200, 34, BitOR($ES_CENTER,$ES_WANTRETURN), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetData(-1, "[Antwort]")
    GUICtrlSetFont(-1, 16, 800, 0, "Tw Cen MT")
    GUICtrlSetColor(-1, 0x000000)
    $loesung_button = GUICtrlCreateButton("?", 200, 565, 40, 40, $BS_CENTER)
    GUICtrlSetFont(-1, 16, 800, 0, "Tw Cen MT")
    $go_button = GUICtrlCreateButton("OK", 615, 150, 40, 34)
    GUICtrlSetFont(-1, 14, 800, 0, "Tw Cen MT")
    GUISetState()
    ;~ ===================================================================================================================================
    Global $Read, $index, $i = 0, $counter = 0, $true = 0, $false = 0, $input
    ;Damit kein "," in AutoIt gelangt!====================================================================================
    HotKeySet("{,}","Komma")
    HotKeySet("{NUMPADDOT}","Komma")
    Func Komma()
    Send(".")
    EndFunc
    ;===================================================================================================================
    Global $mA[29][3]

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

    $mA[0][0] = "Wie lange ist der Korpus ?"
    $mA[0][1] = "356"
    $mA[1][0] = "Wie lange ist die Korpusmensur ?"
    $mA[1][1] = "195"
    $mA[2][0] = "Wie lange ist die Halsmensur ?"
    $mA[2][1] = "130"
    $mA[3][0] = "Wieviel beträgt die Halsstärke am Sattel(exklusive Griffbrett)?"
    $mA[3][1] = "13"
    $mA[4][0] = "Wieviel beträgt die Halsstärke vor dem Halsfuß(exklusive Griffbrett)?"
    $mA[4][1] = "14"
    $mA[5][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[5][1] = "19"
    $mA[6][0] = "Wieviel beträgt die Halsstärke am Sattel(inklusive Griffbrett)?"
    $mA[6][1] = "21"
    $mA[7][0] = "Wie hoch ist der Halsüberstand ?"
    $mA[7][1] = "6"
    $mA[8][0] = "Wie lange ist das Griffbrett ?"
    $mA[8][1] = "270"
    $mA[9][0] = "Wie breit ist das Griffbrett am Sattel ?"
    $mA[9][1] = "23.5"
    $mA[10][0] = "Wie breit ist das Griffbrett am Ende?"
    $mA[10][1] = "42"
    $mA[11][0] = "Wie hoch ist der Griffbrettrand ?"
    $mA[11][1] = "5"
    $mA[12][0] = "Wie stark ist die Griffbretthohlung unter der Diskantsaite ?"
    $mA[12][1] = "0.5"
    $mA[13][0] = "Wie stark ist die Griffbretthohlung unter der Basssaite ?"
    $mA[13][1] = "0.7"
    $mA[14][0] = "Radius der Griffbrettrundung ?"
    $mA[14][1] = "42"
    $mA[15][0] = "Wie hoch ist die Griffbrettprojektion ?"
    $mA[15][1] = "27"
    $mA[16][0] = "Wie lange ist die Mensur ?"
    $mA[16][1] = "330"
    $mA[17][0] = "Abstand vom Steg zum Saitenhalter ?"
    $mA[17][1] = "55"
    $mA[18][0] = "Saitenband am Sattel ?"
    $mA[18][1] = "16.3"
    $mA[19][0] = "Saitenband am Steg ?"
    $mA[19][1] = "33.5"
    $mA[20][0] = "Abstand von Saite zu Saite am Steg ?"
    $mA[20][1] = "11.5"
    $mA[21][0] = "Saitenlage bei Stahlsaiten [Diskantsaite] ?"
    $mA[21][1] = "3.5"
    $mA[22][0] = "Saitenlage bei Darmsaiten [Diskantsaite] ?"
    $mA[22][1] = "2.5"
    $mA[23][0] = "Saitenlage bei Stahlsaiten [Basssaite] ?"
    $mA[23][1] = "4"
    $mA[24][0] = "Saitenlage bei Darmsaiten [Basssaite] ?"
    $mA[24][1] = "5.5"
    $mA[25][0] = "Wieviel Grad beträgt der Saitenknickwinkel ?"
    $mA[25][1] = "158"
    $mA[26][0] = "Wie stark ist der Steg an der Oberseite ?"
    $mA[26][1] = "1.3"
    $mA[27][0] = "Wie stark sind die Stegfüße ?"
    $mA[27][1] = "4.2"
    $mA[28][0] = "Wie hoch ist der Steg ?"
    $mA[28][1] = "32"

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

    For $i = 0 To UBound($mA) - 1
    $mA[$i][2] = 0
    Next
    ;~ =======================================================================
    $i = 0
    $false = 0
    $true = 0
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $frage_button
    GUICtrlSetData($Liste,29 - $counter&"/29 verbleibend")
    GUICtrlSetState($go_button, $GUI_ENABLE)
    $counter += 1
    If $counter <= UBound($mA) Then
    Do
    $index = Random(0, UBound($mA) - 1, 1)
    Until $mA[$index][2] = 0
    $cRead = $mA[$index][0]
    GUICtrlSetData($Frage, $cRead)
    $mA[$index][2] = 1 ; setzt Frage als bereits gestellt
    ConsoleWrite($mA[$index][0]&@CRLF&$mA[$index][1]&@CRLF)
    Else
    If $true >= 28 Then
    If $i <= 5 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 1 !")
    EndIf
    ElseIf $true <= 15 Then
    GUICtrlSetData($Liste,"Du hast mehr als die Hälfte der Fragen falsch beantwortet!"&@CRLF&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 5 !"&@CRLF&"Versuch es nocheinmal!")
    ElseIf $true >= 25 Then
    If $i <= 6 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 2 !")
    EndIf
    ElseIf $true >= 22 Then
    If $i <= 7 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 3 !")
    EndIf
    ElseIf $true >= 19 Then
    If $i <= 8 Then
    GUICtrlSetData($Liste,"Du hast "&$true&"/29 Fragen richtig beantwortet!"&@CRLF&"Die Lösung wurde "&$i&"mal gebraucht!"&@CRLF&@CRLF&"Das gibt die Note 4 !"&@CRLF&"Ich glaub du kannst das besser!")
    EndIf
    EndIf
    FileWriteLine("Highscore.txt",$input&" hat "&$true&"/29 Fragen richtig beantwortet und die Lösung "&$i&" mal verwendet.")
    EndIf
    Case $loesung_button
    $i = $i + 1
    If $i = 10 Then
    MsgBox(0, "", "Du hast bereits 10mal die Lösung gebraucht! Bitte nochmal probieren!")
    Exit
    EndIf
    GUICtrlSetData($Liste, "Die Lösung ist: " & $mA[$index][1]&"mm")
    Sleep(4000)
    ControlClick("Maße","Next --->",5,"Left",1)
    Case $go_button

    $Read = GUICtrlRead($Antwort)
    If $Read <> $mA[$index][1] Then
    $false = $false +1 ;Zählt wie oft die Antwort falsch war.
    GUICtrlSetState($go_button, $GUI_DISABLE)
    GUICtrlSetData($Liste, "Falsche Antwort!" & @CRLF & "Lösung anzeigen?")
    ConsoleWrite("False"&@CRLF)
    GUICtrlSetData($Antwort,"")
    ElseIf $Read = $mA[$index][1] Then
    $true = $true + 1
    GUICtrlSetData($Liste, "Das Maß beträgt " & $Read & "mm!" & @CRLF & "Richtige Antwort!")
    ConsoleWrite("True"&@CRLF)
    GUICtrlSetState($go_button, $GUI_DISABLE)
    GUICtrlSetState($frage_button, $GUI_DISABLE)
    Sleep(3000)
    GUICtrlSetState($go_button, $GUI_ENABLE)
    GUICtrlSetState($frage_button, $GUI_ENABLE)
    ControlClick("Maße","Next --->",5,"Left",1)
    GUICtrlSetData($Antwort,"")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    PS.: Um die Bilder (Background, Icon,...) sehen zu können, müsst ihr den ganzen .zip Ordner downloaden.

    Compiled als zip.: