Toon posts:

[Turbo c++] Timer die bij kbhit op 0 gaat..

Pagina: 1
Acties:
  • 41 views sinds 30-01-2008

Verwijderd

Topicstarter
Hallo,

Ik zoek een functie of een script die bij een kbhit op 0 springt. Het gaat om het volgende:

Ik heb een programma waarin de gebruiker antwoorden moet geven op vragen, maar wanneer er in het programma 2 minuten niet op een toets gedrukt wordt, dan moet het programma weer opnieuw beginnen. (net als bij een pin-automaat zegmaar). Het programma moet tussendoor niet stoppen met het uitvoeren van code... dus aan sleep/delay heb ik niets. Verder ben ik ook al met difftime aan het denken geweest, maar daarmee kan je alleen tijdsverschil tussen 2 tijden berekenen, en niet zeggen dat iets maximaal 120 seconden mag duren en dan terug naar het begin gaan.

het moet dus feitelijk het volgende zijn:

C++:
1
2
3
4
5
6
7
8
9
10
11
begin:
    printf("druk op een toets");
    getch();
    while(timer < 120)
    {
        printf("Geef een letter");
        getc("blaat");
        timer = 0;
        goto next;
    }
    goto begin;


oftewel een timer die gewoon per seconde doorteld, alleen bij een kbhit() moet hij op 0 gaan, en waneer hij over een bepaalde waarde komt moet hij terug gaan.

ik hoop dat iemand me kan helpen..

bvd jaap

.modbreak: code tags toegevoegd, denk daar voortaan zelf aan (zie FAQ)

[ Voor 10% gewijzigd door .oisyn op 17-11-2003 12:15 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

• goto's zijn lelijk, gebruik een loopje
• wat moet getc("blaat"); volgens jou doen?
• Ik zie de kbhit () nergens

Je kunt toch gewoon de huidige tijd opvragen (met time (NULL)), en dan net zo lang een kbhit () doen tot er een hit is, of totdat de tijd verstreken is? En als er dan een hit is reset je de vorige tijd naar de huidige tijd, en handel je de toets af

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
ok, dat snap ik... maar hoe controleer ik dan of de tijd verlopen is?

blaat hoeft niets te doen .. gewoon de gedrukte toets in een variabele zetten.

[ Voor 38% gewijzigd door Verwijderd op 17-11-2003 12:40 ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 00:47
Iets watt hierop lijkt ?
C++:
1
2
3
4
5
6
7
clock_t startts = clock();

if( !kbhit() && clock() > startts + ( WAIT_TIMEOUT * CLK_TCK ) )
{
    startts = clock();
    /* Reset code here */
}

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
thenks, hiermee gaat het denk ik wel lukken!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Mja, dat had je natuurlijk ook makkelijk zelf kunnen verzinnen :{

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.