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

[C++] Pętla wykonująca się aż do podania znaku

Ostatnio zmodyfikowano 2018-04-04 14:59
Autor Wiadomość
krypi23
Temat założony przez niniejszego użytkownika
[C++] Pętla wykonująca się aż do podania znaku
» 2018-04-03 15:32:18
C/C++
char key;
bool game_status = true;
//...
while( game_status ) {
   
    while( ??? ) { // ta pętla ma się wykonywać "nie czekając" na wprowadzenie znaku do zmiennej key, aż do czasu gdy w zmiennej key pojawi się znak 'a' lub 'd'
        system( "cls" );
        game_draw();
        Sleep( 1000 );
    }
   
    key = getch();
   
    switch( key ) {
    case 'a':
        system( "cls" );
        //...
        game_draw();
        break;
    case 'd':
        system( "cls" );
        //...
        game_draw();
        break;
    }
   
}

Da się zrobić coś takiego, aby powyższa pętla wykonywała się do czasu aż podany zostanie znak (a lub b), a następnie cykl dalej się powtarzał? Czyli:
Włączam program, pętla się wykonuje
wciskam a lub d, pętla przestaje się wkonywać, zostają wykonane odpowiednie polecenia z funkcji switch()
Pętla znowu się wykonuje do czasu aż w zmiennej key pojawi się znak a lub d

Kombinowałem z funkcją kbhit(), ale nie bardzo wiem jak by ją tutaj zastosować. Dzięki z góry za odpowiedzi.
P-170435
pekfos
» 2018-04-03 15:44:06
Użyj kbhit().
P-170437
darko202
» 2018-04-04 14:59:11
C/C++
bool Gra::Ruch()
{
    char c;
    int liczba;
    _sleep( 1000 ); //
    while( kbhit() )
    {
        liczba = _getch();
        if( liczba == 72 ) //  cout<<" gora ";
             c = 'g';
       
        if( liczba == 80 ) //  cout<<" dol ";
             c = 'd';
       
        if( liczba == 75 ) //  cout<<" lewo ";
             c = 'l';
       
        if( liczba == 77 ) // cout<<" prawo ";
             c = 'p';
       
        if( liczba == 107 ) // k koniec
             return false;
       
    }
   
    plansza.Rysuj();
    return true;
}
P-170454
« 1 »
  Strona 1 z 1