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

Nieskończona pętla.

Ostatnio zmodyfikowano 2016-12-07 20:26
Autor Wiadomość
NukeeMann
Temat założony przez niniejszego użytkownika
Nieskończona pętla.
» 2016-12-07 17:40:23
Witam. Jest to mój pierwszy post tutaj. Tworzę grę SNAKE. Jak stworzyć pętle która bedzie się wykonywac tak dlugo póki uzytkownik czegoś nie wpisze, ale z kolei, żeby nie czekało na wpisywanie?

Na przykład:
Program wypisuje ciąg fibonacciego tak długo, aż użytkownik nie przerwie go klikając w jakiś przycisk na klawiaturze.

Potrzebne jest to mi do automatycznego poruszania się węża w jednym z kierunków, a po wpisaniu np. 'D' zmieni kierunek.
P-154624
michal11
» 2016-12-07 19:15:16
To zależy jak piszesz tego snake'a. Jakiej biblioteki używasz?
P-154628
Gibas11
» 2016-12-07 19:59:38
Funkcja
kbhit
 ci się do tego przyda, sprawdza czy ktoś coś kliknął i jeśli tak zwraca
true
. Masz to w
#include <conio.h>
, zakładając że używasz Windowsa. Jeśli masz Linuksa czy innego Uniksa możesz zaimplementować
kbhit
 sam, przykład masz poniżej.

C/C++
// conio.h

while( true ) {
    snek.idz();
    if( kbhit() ) {
        char c = getch();
        if( c == 'd' ) {
            snek.skrec( snek::lewo );
        }
        /* … */
    }
    /* … */
}

C/C++
//ncurses.h

int kbhit( void )
{
    int ch = getch();
   
    if( ch != ERR ) {
        ungetch( ch );
        return 1;
    } else {
        return 0;
    }
}

//edit: I dla jasności, bo widzę niektórzy czasem się nie domyślają, kod powyżej to przykład a Ctrl+C i Ctrl+V w IDE zaowocują błędem, masz się tym tylko zainspirować. Chociaż to drugie jest prawie k, wystarczy że zainicjujesz ncurses w odpowiednim miejscu i powinno być ok.
P-154630
NukeeMann
Temat założony przez niniejszego użytkownika
» 2016-12-07 20:26:58
Jednak dalej nie rozumiem tego. Jakiś prostszy sposób?
P-154631
« 1 »
  Strona 1 z 1