Reaktionstest

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Clonker

Betreff: Reaktionstest

BeitragSo, Mai 30, 2004 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

diesen Reaktionstest hab ich irgendwann in den letzten Ferien programmiert und nun als ich meine Festplatte mal wieder vom Müll befreit habe, wiedergefunden.
Tja, er ist zwar nicht perfekt und bestimmt auch noch Verbesserungswürdig, aber bevor er auf meiner Festplatte vergammelt, dachte ich stell ich ihn mal ins Codearchiv.

BlitzBasic: [AUSKLAPPEN]

;Reaktionstest by Sebastian Steinmann
Graphics 600,200,32,2

SetBuffer BackBuffer()
Global font,font2,reaktionszeit,farbe,start,punkte,zaehler,aufgaben = 5,stufe=1
AppTitle "Reaktionstest"

Dim speicher(30)

font = LoadFont("Arial",18,1,0,0)
font2 = LoadFont("Arial",26,1,0,0)
SetFont font

menu()

Function einstellungen()
auswahl = 1
Repeat
Cls
Color 255,255,255
SetFont font2
Text 300,20,"Einstellungen",1
SetFont font
Text 20,70,"Wie viele Versuche?"
Text 20,90,"Welche Schwirigkeitsstufe?"
Text 20,130,"Zurück"
Text 300,70,aufgaben
Text 300,90,stufe

If auswahl = 1 Then
Color 255,255,255
Text 20,70,"Wie viele Versuche?"
Text 300,70,aufgaben
If KeyHit(205) And aufgaben < 30 Then aufgaben = aufgaben + 1
If KeyHit(203) And aufgaben <> 1 Then aufgaben = aufgaben - 1
Else
Color 133,133,133
Text 300,70,aufgaben
Text 20,70,"Wie viele Versuche?"
EndIf

If auswahl = 2 Then
Color 255,255,255
Text 20,90,"Welche Schwirigkeitsstufe?"
Text 300,90,stufe
If KeyHit(205) And stufe <> 2 Then stufe = stufe + 1
If KeyHit(203) And stufe <> 1 Then stufe = stufe - 1
Else
Color 133,133,133
Text 20,90,"Welche Schwirigkeitsstufe?"
Text 300,90,stufe
EndIf

If auswahl=3 Then
Color 255,255,255
Text 20,130,"Zurück"
If KeyHit(28) Then
Exit
EndIf
Else
Color 133,133,133
Text 20,130,"Zurück"
EndIf

If KeyHit(200) And auswahl <> 1 Then auswahl = auswahl - 1
If KeyHit(208) And auswahl <> 3 Then auswahl = auswahl + 1

Flip
Until KeyHit(1)
End Function

Function start()

If aufgaben < 6 Then
Graphics 600,200,32,2
Else
Graphics 600,200 + ((aufgaben-6)*30),32,2
EndIf

farbe = 1

;Hauptschleife
font = LoadFont("Arial",18,1,0,0)
SetFont font
SetBuffer FrontBuffer()

schonzeit = MilliSecs()

Repeat
Cls
SeedRnd = MilliSecs()
temp = zaehler + 1
Color 255,255,255
Text 10,10,"Wenn das Rechteck auf rot umspringt, dann drücke so schnell wie möglich Enter.
Text 10,30,"(Versuch " + temp + " von "+ aufgaben +") Stufe: " + stufe
Rect 9,99,302,82,0

If farbe = 1 Then
Color 0,255,0
Rect 10,100,300,80
If MouseDown(1) <> 1 And KeyDown(59) <> 1 And KeyDown(60) <> 1 Then
If KeyHit(28) = 1 Then
zaehler = zaehler + 1
Text 10,50,"Falsch"
speicher(zaehler) = 1000

WaitKey()
WaitKey()

schonzeit = MilliSecs()

FlushKeys
EndIf
EndIf
ElseIf farbe = 2 Then
Color 255,0,0
Rect 10,100,300,80
If KeyHit(28) = 1 Then
punkte = punkte + 1
zaehler = zaehler + 1
farbe = 1
reaktionszeit2 = MilliSecs() - reaktionszeit

If reaktionszeit2 >= 0 Then
Color 0,255,0
If reaktionszeit2 >= 170 Then
Color 0,128,0
If reaktionszeit2 >= 300 Then
Color 255,255,0
If reaktionszeit2 >= 450 Then
Color 128,0,0
If reaktionszeit2 >= 850 Then
Color 255,0,0
EndIf
EndIf
EndIf
EndIf
EndIf

Text 10,50,"Reaktionszeit: " + reaktionszeit2 + " Millisekunden."
speicher(zaehler) = reaktionszeit2
WaitKey()
WaitKey()

schonzeit = MilliSecs()

FlushKeys
EndIf
ElseIf farbe = 3 Then
Color r,g,b
Rect 10,100,300,80
If KeyHit(28) = 1 Then
zaehler = zaehler + 1
Text 10,50,"Falsch"
speicher(zaehler) = 1000

WaitKey()
WaitKey()

schonzeit = MilliSecs()

FlushKeys
r=0 : g=255 : b=0
EndIf
EndIf

If start = 1 Then
reaktionszeit = MilliSecs()
start = 0
farbe = 2
EndIf

schonzeit2 = MilliSecs() - schonzeit

If schonzeit2 > 1000 Then
If stufe = 2 And farbe <> 2 Then
If Rand(4500) = 1234 Then farbe = 3 : r=Rand(10) : g=Rand(255) : b=Rand(255)
If Rand(7000) = 1234 Then start = 1
ElseIf stufe = 1 Then
If Rand(5000) = 1234 Then start = 1
EndIf
EndIf

If zaehler = aufgaben Then
Exit
EndIf

Until KeyHit(1) = 1

;Auswertung
Cls
Color 255,255,255
Text 10,10,"Du hast " + punkte + " von " + zaehler + " Punkten erreicht."
For i=0 To aufgaben - 1
temp = i + 1
Text 10, 50+(20*i),"Versuch: " + temp
Next
For i=1 To aufgaben
Color 255,255,255
Text 150, 30+(20*i),speicher(i) + " Millisekunden"
If speicher(i) >= 0 Then
temp2$ = "Sehr gut"
Color 0,255,0
If speicher(i) >= 170 Then
Color 0,128,0
temp2$ = "Gut"
If speicher(i) >= 300 Then
Color 255,255,0
temp2$ = "Normal"
If speicher(i) >= 450 Then
Color 128,0,0
temp2$ = "Schlecht"
If speicher(i) >= 850 Then
Color 255,0,0
temp2$ = "Sehr schlecht"
EndIf
EndIf
EndIf
EndIf
EndIf

Text 400,30+(20*i),temp2
Next
For i = 1 To aufgaben
schnitt = schnitt + speicher(i)
Next
schnitt = schnitt / aufgaben
Color 255,255,255
Text 10,60+(20*aufgaben),"Durchschnitt: " + schnitt
If schnitt >= 0 Then
temp2$ = "Sehr gut"
Color 0,255,0
If schnitt >= 170 Then
Color 0,128,0
temp2$ = "Gut"
If schnitt >= 300 Then
Color 255,255,0
temp2$ = "Normal"
If schnitt >= 450 Then
Color 128,0,0
temp2$ = "Schlecht"
If schnitt >= 850 Then
Color 255,0,0
temp2$ = "Sehr schlecht"
EndIf
EndIf
EndIf
EndIf
EndIf
Text 180,60+(20*aufgaben),temp2
WaitKey()
FlushKeys

auswahl = 1
Repeat
Cls
Color 255,255,255
Text 300,20,"Nochmal?",1

Color 133,133,133
Text 20,50,"Ja"
Text 20,70,"Nein"

If auswahl=1 Then
Color 255,255,255
Text 20,50,"Ja"
If KeyHit(28) Then
neu()
EndIf
Else
Color 133,133,133
Text 20,50,"Ja"
EndIf

If auswahl=2 Then
Color 255,255,255
Text 20,70,"Nein"
If KeyHit(28) Then
End
EndIf
Else
Color 133,133,133
Text 20,70,"Nein"
EndIf

If KeyHit(200) And auswahl <> 1 Then auswahl = auswahl - 1
If KeyHit(208) And auswahl <> 2 Then auswahl = auswahl + 1

Flip
Forever

End Function

Function neu()
For i=1 To aufgaben
speicher(i) = ""
Next
punkte = 0
zaehler = 0
start()
End Function

Function menu()
auswahl = 1

Repeat
Cls

Color 255,255,255
SetFont font2
Text 300,20,"Reaktionstest",1
SetFont font
Text 20,70,"Start"
Text 20,90,"Einstellungen"
Text 20,110,"Beenden"

Color 255,255,255
Text 300,180,"(c) by Sebastian Steinmann",1

If auswahl = 1 Then
Color 255,255,255
Text 20,70,"Start"
If KeyHit(28) Then
neu()
EndIf
Else
Color 133,133,133
Text 20,70,"Start"
EndIf

If auswahl = 2 Then
Color 255,255,255
Text 20,90,"Einstellungen"
If KeyHit(28) Then
einstellungen()
EndIf
Else
Color 133,133,133
Text 20,90,"Einstellungen"
EndIf

If auswahl = 3 Then
Color 255,255,255
Text 20,110,"Beenden"
If KeyHit(28) Then
End
EndIf
Else
Color 133,133,133
Text 20,110,"Beenden"
EndIf

If KeyHit(200) And auswahl <> 1 Then auswahl = auswahl - 1
If KeyHit(208) And auswahl <> 3 Then auswahl = auswahl + 1

Flip
Until KeyHit(1)

End Function


Ich hoffe er gefällt euch.

[edit]Anzeige, die nach jedem Versuch die Reaktionszeit anzeigt auch noch farblich angepasst. Danke an Travis.[/edit]

[edit die 2te]Schonzeit von einer Sekunde nach dem Enterdrücken. Danke an Ctuchik.[/edit die 2te]

Clonker
Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz.

Athlon XP 2800|Radeon 9600 Pro|512MB DDR RAM|240GB Festplatte
  • Zuletzt bearbeitet von Clonker am Mo, Mai 31, 2004 2:03, insgesamt 4-mal bearbeitet

Travis

BeitragSo, Mai 30, 2004 23:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Gefällt mir. Man könnte die Anzeige, die nach jedem Versuch die Reaktionszeit anzeigt auch noch farblich anpassen, damit eine Zeit von 230ms nicht in roter Farbe angezeigt wird, aber ansonsten finde ich's gut.

Ich habe vor einiger Zeit auch mal was ähnliches gemacht. http://home.t-online.de/home/D...t/Reakt.bb - Aber Achtung hier gibt es mehrere Farben!
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Sebi

BeitragSo, Mai 30, 2004 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Shön schön .. aber warum steht bei mir immer "Sehr schlecht" Embarassed ?
Liegt das daran, dass ich was getrunken hab oder ist das normal ? Wink
 

cavebird

BeitragSo, Mai 30, 2004 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
1. 101 Sehr Gut
2. 50 Sehr Gut
3. 148 Sehr Gut
4. 98 Sehr Gut
5. 113 Sehr Gut

Durchschnitt: 102 Sehr Gut

Dieses Ergebnis habe ich allerdings erst nach ca.>30 Versuchen erzielt.
Finde dein Programm echt cool 8)

Clonker

BeitragSo, Mai 30, 2004 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Reaktionszeiten hätt ich auch gern, bei mir liegen sie so ca. bei 230.
Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz.

Athlon XP 2800|Radeon 9600 Pro|512MB DDR RAM|240GB Festplatte
 

cavebird

BeitragSo, Mai 30, 2004 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun ich weiß auch nicht mit ein bißchen Übung krieg ich alles hin.
Meine Reaktionen sind überall blitzschnell *g*

Ctuchik

BeitragMo, Mai 31, 2004 1:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr schön, aber kannst du ne Verzögerung einbauen, dass nicht sofort wieder rot kommt!
Manchmal ist es gleich nach dem Enterdrücken wieder da und man peilt net, dass überhaupt schon die nächste Runde ist!

Ansonsten: In einer Runde mit 30 Versuchen war mein Durchschnitt ~350, was der Reaktion eines normalen Menschen entsprechen sollte!

Clonker

BeitragMo, Mai 31, 2004 2:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Gute Idee, hab ich geändert.
Jetzt hat man eine "Schonzeit" von einer Sekunde nach dem Enter drücken.
Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz.

Athlon XP 2800|Radeon 9600 Pro|512MB DDR RAM|240GB Festplatte

Ctuchik

BeitragMo, Mai 31, 2004 13:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Viel besser!
Da steigt mein Schnitt doch glatt auf 283ms an!

Bfox

BeitragMo, Mai 31, 2004 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Finde das Blinken stört!
Glauben ist Mangel an Wissen!

Clonker

BeitragMo, Mai 31, 2004 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Welches Blinken?
Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz.

Athlon XP 2800|Radeon 9600 Pro|512MB DDR RAM|240GB Festplatte
 

Affje

BeitragMo, Mai 31, 2004 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
das blinken des rahmens, stört mich auch n bisschen. der kasten sollte immer da sein und nur die farben wechseln.

echt klasse sonstm, meine reaktionszeiten??

über 500ms =)
www.drachengarde.tk
Guckst da Hier

Blatolo

BeitragMo, Mai 31, 2004 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir blinkt der rahmen nicht.
Habe Reaktionszeiten von 200 bis 350.

Clonker

BeitragMo, Mai 31, 2004 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir blinkt er auch nicht, aber bei meinem Bruder.
Ich habe das so beseitigt, indem ich die Function Flip geändert habe.

BlitzBasic: [AUSKLAPPEN]

Function Flip()
CopyRect 0, 0, GraphicsWidth(), GraphicsHeight(), 0, 0, BackBuffer(), FrontBuffer()
Delay 10
End Function

Wenn ihr das unten drunter packt sollte es gehen.
Die exzessive Akkumulation von Fremdwörtern suggeriert pseudointellektuelle Kompetenz.

Athlon XP 2800|Radeon 9600 Pro|512MB DDR RAM|240GB Festplatte
 

Cloud

BeitragMo, Mai 31, 2004 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
bei hat es erst auch geblinkt, dann hab ich debug ausgeschaltet und das blinken war weg!

Ansonsten nettes Prog
Duron 1200 | 256 RAM | Geforce 2 TI

Blatolo

BeitragMo, Mai 31, 2004 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
liegt wirklich am debug.
mit debug blinkt das so sehr dass ich nicht einmal eine farbe in dem kasten sehe.
So kann ich nur raten.
Aber ohne debug läuft alles perfekt

rambo256

BeitragDi, Jun 01, 2004 11:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich glaub das schafft hier so schnell niemand:
user posted image

KEIN Fake!!!
Asus F53z

Das Leben ist eine reine Konkatenation...

Ctuchik

BeitragDi, Jun 01, 2004 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, wenn man auf gut Glück drückt, bin ich auch schon unter 50ms gekommen Wink

Travis

BeitragDi, Jun 01, 2004 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
So langsam wird's zum Forumssport Smile

Bei mir liegt der Schnitt in etwa bei 250ms. Bei meinem eigenen Reaktionstest liege ich immer so zwischen 300-350ms. Da muss man allerdings auch Farben unterscheiden.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group