Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
20
Добавлен:
07.03.2016
Размер:
2.63 Кб
Скачать
// msoftcon.h
// Объявления функций консольной графики от Lafore
// используются консольные функции Windows 

#ifndef _INC_WCONSOLE    // этот файл не должен включаться
#define _INC_WCONSOLE    // дважды в тот же исходный файл

#include <windows.h>     // для консольных функций Windows
#include <conio.h>       // для kbhit(), getche()
#include <math.h>        // для sin, cos
#include <time.h>

enum fstyle { SOLID_FILL, X_FILL,      O_FILL, 
	LIGHT_FILL, MEDIUM_FILL, DARK_FILL };

enum color {
	cBLACK = 0,     cDARK_BLUE = 1,  cDARK_GREEN = 2, DARK_CYAN = 3, 
	cDARK_RED = 4,  cDARK_MAGENTA = 5, cBROWN = 6,  cLIGHT_GRAY = 7,
	cDARK_GRAY = 8, cBLUE = 9,         cGREEN = 10,     cCYAN = 11, 
	cRED = 12,      cMAGENTA = 13,     cYELLOW = 14,    cWHITE = 15 };
	//---------------------------------------------------------
	void init_graphics();
	void set_color(color fg, color bg = cBLACK);
	void set_cursor_pos(int x, int y);
	void clear_screen();
	void wait(int milliseconds);
    void delay(int ms);                  // аргумент- требуемое время задержки в миллисекундах
	void clear_line();
	void draw_fill_rectangle(int left, int top, int right, int bottom);                    
	void draw_rectangle(int left, int top, int right, int bottom);                    
	void draw_circle(int x, int y, int rad);
	void draw_line(int x1, int y1, int x2, int y2);
	void draw_pyramid(int x1, int y1, int height);
	void set_fill_style(fstyle);
	int read_key();
//---------------------------------------------------
class clTimer                // Класс, который следует использовать как порождающий,
{                            // для всех консольных классов, которым нужен таймер.

 int lastTime;               // Момент последнего запуска OnTimer()
 bool On;                    // Включен или выключен
public:
 int Interval;               // интервал в милисекундах, через который запускается OnTimer()
 virtual void OnTimer()=0;
 clTimer()                           // Конструктор
 {
  lastTime=0;
  Interval=0;
  On=false;
 }
 void TimerOn(int delay=0)           // Включение с интервалом delay (в милисекундах)
 {
  Interval=delay;
  On=true;
  lastTime=clock();                  // Системное время в милисекундах запомнить в lastTime
 }
 void TimerOff()                     // Выключение
 {
  On=false;
 }
 void Go()                           // Запуск (любого объекта любого класса - потомка)
 {
  if(!On) return;
  int tMoment=clock();
  if(tMoment<=lastTime+Interval) return;  // Рано
  lastTime=tMoment;
  OnTimer();
 }
};
#endif /* _INC_WCONSOLE */
Соседние файлы в папке Псевдографика