Syntax Fehler?

  • Viele kennen vielleich Dr. Kawaschimas(?) Gehirnjogging und aus Langeweile bin ich mir grade eine Version für den PC am schreiben. Ich hab eine "Aufgabe" schon sogut wie fertig nur macht die If-Abfrage mir zu schaffen.
    Aktueller Code:

    Spoiler anzeigen
    [autoit]

    _20Rechnen()

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

    Func _20Rechnen()
    Local $punkte = 0
    Dim $operator[4]
    $operator[0] = "-"
    $operator[1] = "+"
    $operator[2] = "/"
    $operator[3] = "*"
    $zeit = TimerInit()
    For $i = 20 To 1 Step -1
    $operand1 = Random(0,9,1)
    $operand2 = Random(0,9,1)
    $operater = $operator[Random(0,3,1)]
    If Not $operand1 < $operand2 And $operater = "-" OR "/" Then
    $aufgabe = $operand1 & $operater & $operand2
    If InputBox("Rechnen 20", $aufgabe &@CRLF& "Noch "&$i& " Aufgaben verbleibend","") = Execute($aufgabe) Then
    $punkte = $punkte+1
    Else
    $endzeit = TimerDiff($zeit)+200000
    EndIf
    ElseIf Not $operand2 = 0 And $operater = "/" Then
    $aufgabe = $operand1 & $operater & $operand2
    If InputBox("Rechnen 20", $aufgabe &@CRLF& "Noch "&$i& " Aufgaben verbleibend","") = Execute($aufgabe) Then
    $punkte = $punkte+1
    Else
    $endzeit = TimerDiff($zeit)+200000
    EndIf
    EndIf
    Next
    $ende = $endzeit
    $finalTime = Round($ende/1000)
    MsgBox(0,"Ergebnis", "Du hast " &$punkte& " Punkte erreicht und " &Round(TimerDiff($zeit)/1000)& " Sekunden gebraucht("&$finalTime& "Strafsekunden)")
    EndFunc

    [/autoit]


    Ich dachte erst so würde er die schwer lösbaren und unlogischen aussortieren doch es kommen trotzdem noch Aufgaben im Sinne von 4-8 oder 4/9.
    Das mit der Endzeit ist eher unwichtig das kleine Problem krieg ich wahrscheinlich alleine gelöst.

    Hoffe ihr könnt mir helfen:)
    MfG
    ettecks

  • Mir fehlt ja leider die Möglichkeit zu testen - aber sollte diese Zeile

    [autoit]

    If Not $operand1 < $operand2 And $operater = "-" OR "/" Then

    [/autoit]

    Nicht eher so lauten:

    [autoit]

    If Not ($operand1 < $operand2) And Not ($operater = "-" OR $operater = "/") Then

    [/autoit]

    Keine Gewähr ^^

    PS: Es heißt Operator, nicht Operater

  • Zitat

    PS: Es heißt Operator, nicht Operater


    Ich weiß, nur ich hab $operator schon als Array deklariert(?) und ich wollte nicht immer $operator[Random(0,3,1)] schreiben^^
    Und so wie du es geschrieben hast ging es leider auch nicht :(