Страница 1 из 1

Обновление риалтайм

Добавлено: 04 сен 2009, 14:56
Sobakaa
Делаю программку на С (это важно, методы С++ просьба не советовать), которая выводит что-то вроде калейдоскопа - в консоли, в массиве пробелов в случайных местах появляются звёздочки, фигуры из звёздочек для первой четверти квадрата, после чего зеркалятся в остальные 3 четверти - создаются иногда весьма занятные узоры.
Проблема в том, что я не знаю, как зациклить это и заставить выполняться вечно, или пока пользователь не нажмёт выбранную мной кнопку, либо не пошлёт брейк.
Вторая проблема - в таком случае необходимо что-то вроде delay(1000 ms), чтобы пользователь не умер от эпилепсии. Тоже не знаю функции для задержки содержимого экрана на время.
Подскажите куда копать, хотя бы на уровне заголовочных файлов.

Re: Обновление риалтайм

Добавлено: 05 сен 2009, 12:24
Airhand
Я не знаю в С или С++, но есть функция для задержки Sleep(), а на счёт бесконечного выполнения - это надо видеть код. Пока ничего на ум не идёт, кроме вечного цикла while(true).

Re: Обновление риалтайм

Добавлено: 05 сен 2009, 13:24
Romeo
Вот так можно сделать цикл до нажатия любой клавиши. Думаю, как сделать цикл до нажатия какой-то определённой клавиши и так понятно.

Код: Выделить всё

#include <conio.h>

int main()
{
   /* Clear keyboard buffer */
   while (kbhit()) getch();

   while (!kbhit())
   {
      /* Here we are drawing the night sky */
   }

   return 0;
}

Re: Обновление риалтайм

Добавлено: 05 сен 2009, 15:41
Sobakaa
Вопрос решился функцией Sleep() из windows.h, бесконечный цикл реализовался банальным while(a), которая при нажатии заранее оговорённой кнопки перекидывается из 1 в 0. Уверен, можно и изящнее.
Всем спасибо, топик закрыт.