Hallo, ich stehe vor einem Problem.
Ich bin gerade dabei einen Reaktionstest zu scripten.
Vorgegebene Bilder lassen sich schon Random aus einem Ordner anzeigen, meine Abfrage ist noch nicht richtig.
Der Ablauf: Ich bekomme random ein Bild angezeigt (Kreis oder Rechteck), dann wartet das script auf eine Eingabe (taste "r" für rechteck oder taste "k" für kreis), danach macht es eine Abfrage ob die eingabe dem gesehen Bild entspricht. Danach soll das nächste Bild angezeigt werden. (Optional - das habe ich noch nicht drin - soll es eine ausgabe geben, wieviele aktuell richtig bzw falsch waren - damit wurde aber noch nicht begonnen)
Das Problem: Ich müsste hellsehen koennen um richtig zu liegen
Das wild wird angezeigt, aber die eingabe prüft schon das nächste Bild (was ich noch gar nicht sehe) und nicht das aktuelle. Ich hab schon lange dran gesessen aber ich finde den fehler nicht und bitte nun hilfe. (Grundsätzlich ist die ausgabe richtig / falsch aber korrekt.)
Die Bilder lieg im Ordner "Bilder" - ich habe alles nochmal als anhang beigepackt.
Dank im Voraus.
Hier das Script:
Spoiler anzeigen
#include <Array.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
GUICreate("reaktionstest", 500, 500)
$files = _FileListToArray("Bilder", "*.bmp", 1)
GUICtrlCreatePic(@ScriptDir & "\Bilder\kreis01.bmp", 60, 60, 350, 350)
GUISetState()
_main()
Func _main()
_ladebild()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case HotKeySet ("{r}", "WEITER_rechteck")
Case HotKeySet ("{k}", "WEITER_kreis")
EndSwitch
WEnd
EndFunc
func WEITER_rechteck()
$bild = $files[$randomarr[Floor(340 / 340)]]
Select
Case $bild = "rechteck01.bmp" Or $bild = "rechteck02.bmp" Or $bild = "rechteck03.bmp"
MsgBox(0,0, "Richtig")
Case $bild = "kreis01.bmp" Or $bild = "kreis02.bmp" Or $bild = "kreis03.bmp"
MsgBox(0,0, "Falsch")
EndSelect
_main()
EndFunc
func WEITER_kreis()
$bild = $files[$randomarr[Floor(340 / 340)]]
Select
Case $bild = "kreis01.bmp" Or $bild = "kreis02.bmp" Or $bild = "kreis03.bmp"
MsgBox(0,0, "Richtig")
Case $bild = "rechteck01.bmp" Or $bild = "rechteck02.bmp" Or $bild = "rechteck03.bmp"
MsgBox(0,0, "Falsch")
EndSelect
_main()
EndFunc
Func _random()
Global $randomarr[1]
While True
If UBound($randomarr) = UBound($files) Then ExitLoop
$r = Random(1, $files[0], 1)
If _ArraySearch($randomarr, $r) = -1 Then _ArrayAdd($randomarr, $r)
WEnd
EndFunc
func _ladebild()
_random()
GUICtrlCreatePic(@ScriptDir & "\Bilder\" & $files[$randomarr[Floor(340 / 340)]], 60, 60, 350, 350)
EndFunc