#include <iostream>
#include <time.h>
#include <windows.h>
#include <conio.h>
using namespace std;
int main()
{
clock_t start, stop;
int oczekuj;
double czasReakcji;
srand(time(NULL));
oczekuj=rand()%6000+500; /// Sleep(oczekuj)- czas oczekiwania od 0.5 do 6 sek.
cout << "Wcisnij klawisz."<<endl;
getch();
system("cls");
Sleep(oczekuj);
/*if(kbhit()==1) ///dodac w tym miejscu (lepszą) opcje falstartu
{
cout<<"FALSTART!";
Sleep(3000);
exit(0);
}*/
cout<<"TERAZ!\a";
start=clock();
getch();
stop=clock();
system("cls");
czasReakcji=(double)(stop-start)/CLOCKS_PER_SEC;
cout<<"Twoj czas reakcji: "<<czasReakcji<<" sek.";
getch();
return 0;
}
Cześć! Postanowiłem napisać program liczący czas reackji użytkownika. Zastosowałem funkcję Sleep i rand do wylosowania czasu oczekiwania na sygnał. Generalnie program działa, ale postanowałem dodać do niego opcję FALSTARTU i tu pojawia się wyzwanie. W komentarzu napisałem część która jako tako spełnia swoją funckję i wykrywa kiedy użytkownik zareaguje przed sygnałem, ale informacje o przewinieniu zwraca dopiera w momencie kiedy skończy się czas oczekiwania (int oczekuj) na sygnał. Domyślam się że chodzi tu o funkcję Sleep która usypia program na dany czas co jest konsekwencją że program nie reaguje na inne instrukcje.
Macie pomysł jaką inną funckję zastosować (zamiast sleep) żeby program od razu zareagował na FALSTART?
Ps; To mój pierwszy post na forum i dopiero zaczynam z programowaniem. Apeluje o wyrozumiałość ;)