2016-01-25 2 views
1

Я действительно не знаю, как набрать название, поэтому я придумал это. Поэтому в основном я пытаюсь сделать что-то вроде змеи на C. Но я не знаю, как сделать элементы управления. Допустим, вы нажали левую стрелку, и змея должна двигаться влево до нажатия другой клавиши, но я не могу придумать код, чтобы он всегда останавливался и ожидал, когда я нажму кнопку.Как я могу получить getch() только в некоторых случаях в C?

Я думал что-то вроде этого:

for (i = 0; i < 10 ; i++) { 
    if(next_move = getch()) break; 
    else Sleep(10); 
} 
if(!next_move) 
    next_move = prev_move; 
if(move (next_move, bite_cord)) { 
    prev_move = next_move; 
    next_move = 0; 
    Sleep(300); 
    system("CLS"); 
    printf("You lost. "); 
} 

Моя идея состояла в том, чтобы подождать одну секунду, и если Тереза ​​ни одна клавиша не нажата, чтобы продолжить с предыдущим, но если ее нажать, чтобы сохранить теперь нажать.

Есть ли у вас идеи о том, как это сделать?

+3

Возможный дубликат [C неблокируемому ввод с клавиатуры] (http://stackoverflow.com/questions/448944/c-non-blocking -keyboard-input) –

+1

@EugeneSh. Ответ в дубликате для UNIX. Кажется, что OP спрашивает о DOS. – fuz

+1

Если это для Windows, то возможно дубликат http://stackoverflow.com/questions/21294713/non-blocking-io-in-c-windows – Derlin

ответ

0

Вы можете использовать kbhit() код будет нечто вроде

if (kbhit()) 
    input = getch(); //Or something like that 
Смежные вопросы