Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Problem z odliczaniem czasu (Test na refleks)

Ostatnio zmodyfikowano 2014-12-04 14:12
Autor Wiadomość
Myraa
Temat założony przez niniejszego użytkownika
[C++] Problem z odliczaniem czasu (Test na refleks)
» 2014-11-29 13:25:02
Witam! Poszukuję od jakiegoś czasu jakiegoś sposobu, który odliczałby czas. Muszę stworzyć test na refleks, gdzie na każdą odpowiedź są maksymalnie 4 sekundy. Myślałem o pętli, która by co chwilę sprawdzała aktualny czas w porównaniu z czasem startowym (przy zadawaniu pytania) i dla różnicy 4 sekund zaliczała by złą odpowiedź i przechodziła do kolejnego pytania. Tylko nie za bardzo wiem jak to wykonać. Bardzo proszę o pomoc.
P-121681
mati1995g
» 2014-11-29 14:27:35
możesz spróbować pobawić się z difftime
P-121686
Myraa
Temat założony przez niniejszego użytkownika
» 2014-11-29 14:40:17
No tak, ale nie za bardzo wiem jak zrobić coś w rodzaju pętli. Bo z tego co wyczytałem, to difftime to po prostu różnica czasów, a jeszcze pozostaje problem sprawdzania non-stop tego czasu.
P-121687
mati1995g
» 2014-11-29 14:52:21
Na przykładzie jednego pytania:

C/C++
#include <iostream>
#include <time.h>
using namespace std;



int main()
{
   
    time_t a, b;
    int odp;
    double czas;
   
   
    time( & a ); //pobierasz czas poczatkowy
    cin >> odp;
    time( & b ); //czas po wpisaniu odpowiedzi
    czas = difftime( b, a ); //różnica tych czasów
    cout << czas;
   
    return 0;
}
P-121691
Myraa
Temat założony przez niniejszego użytkownika
» 2014-11-29 15:01:11
To też już wiem. Tylko jak ustawić żeby przechodziło do kolejnego pytania kiedy użytkownik nie udzieli odpowiedzi po upływie 4 sekund? Potrzebuję czegoś w rodzaju timera.
P-121693
Myraa
Temat założony przez niniejszego użytkownika
» 2014-12-04 14:12:19
Znalazłem rozwiązanie mojego problemu i wrzucam fragment kodu, bo  może ktoś też będzie potrzebował w miarę prostego timera:
C/C++
int timer = 4000;
while( timer > 0 )
{
    if( timer % 1000 == 0 || timer == 10 ) cout << timer / 1000 << " ";
   
    if( kbhit() )
    {
        odp = getch();
        break;
    }
    Sleep( 10 );
    timer -= 10;
};

W razie pytań mogę wyjaśnić kod.
Mam nadzieję, że komuś pomogę tym. :)
P-122168
« 1 »
  Strona 1 z 1