Делаю программку на С (это важно, методы С++ просьба не советовать), которая выводит что-то вроде калейдоскопа - в консоли, в массиве пробелов в случайных местах появляются звёздочки, фигуры из звёздочек для первой четверти квадрата, после чего зеркалятся в остальные 3 четверти - создаются иногда весьма занятные узоры.
Проблема в том, что я не знаю, как зациклить это и заставить выполняться вечно, или пока пользователь не нажмёт выбранную мной кнопку, либо не пошлёт брейк.
Вторая проблема - в таком случае необходимо что-то вроде delay(1000 ms), чтобы пользователь не умер от эпилепсии. Тоже не знаю функции для задержки содержимого экрана на время.
Подскажите куда копать, хотя бы на уровне заголовочных файлов.
Обновление риалтайм
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Я не знаю в С или С++, но есть функция для задержки Sleep(), а на счёт бесконечного выполнения - это надо видеть код. Пока ничего на ум не идёт, кроме вечного цикла while(true).
Оптимизация по скорости:
#define while if
Оптимизация по размеру:
#define struct union
#define while if
Оптимизация по размеру:
#define struct union
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Вот так можно сделать цикл до нажатия любой клавиши. Думаю, как сделать цикл до нажатия какой-то определённой клавиши и так понятно.
Код: Выделить всё
#include <conio.h>
int main()
{
/* Clear keyboard buffer */
while (kbhit()) getch();
while (!kbhit())
{
/* Here we are drawing the night sky */
}
return 0;
}
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Вопрос решился функцией Sleep() из windows.h, бесконечный цикл реализовался банальным while(a), которая при нажатии заранее оговорённой кнопки перекидывается из 1 в 0. Уверен, можно и изящнее.
Всем спасибо, топик закрыт.
Всем спасибо, топик закрыт.