void far initgraph (int far * graphdriver, int far * graphmode, char far * pathtodriver);
Для указания типа драйвера в файле имеются константы:
DETECT = 0 (режим автоопределения типа)
CGA =1
EGA=3
VGA=9
и т. д.
Аналогично имеются константы для определения моды адаптера.
Но если программа рассчитана на работу с любым адаптером, вызов функции можно производить с требованием автоопределения типа драйвера:
int dr = DETECT, // тип драйвера и
mod; // режим работы адаптера
// определяются автоматически
//режим при этом выбирается с максимальным разрешением
initgraph (&dr, &mod, "D:\\Borlandc\\BGI");
// предполагается, что драйвер находится в каталоге BGI
#include <graphics.h>
#include <conio.h> //содержит прототип функции getch()
// опишем класс
class point { //точка на экране дисплея
int x, y; // собственные компонентные данные
public: // общедоступные компонентные функции
point (int xx=0, int yy =0); // прототип конструктора
// с умалчиваемыми значениями
void show (void); // прототип функции изображения точки
void move (int xo=0, int yo =0); // прототип функции
// перемещения точки с умалчиваемыми значениями
|
|
private: // собственная функция класса
void hide (); // прототип функции, убирающей точку с экрана
};
//дадим внешнее определение методам класса
point::point(int xx=0, int yy=0) // определение конструктора
{ x = xx; y = yy; }
Void point:: show (void)
{ putpixel (x, y, getcolor());} // int getcolor(void)
// возвращает номер цвета символов
Void point:: hide(void)
{ putpixel (x, y, getbkcolor()); }
void point::move (int xn=0, int yn=0)
{ hide ();
x =xn; y= yn;
show (); }
Void main ()
{ // создается три объекта, три невидимых точки
point A (150, 70);
point B; // координаты по умолчанию равны x=0 и y=0
point D (400, 200);
//инициализация графики
int dr = DETECT, mod;
initgraph (& dr, & mod, “D:\\ borlandc\\ bgi “);
// установка цвета
setcolor(4);
A.show (); // показать на экране точку А
getch () // подождать до нажатия клавиши
B.show (); // показать на экране точку В
getch (); // подождать до нажатия клавиши
D.show (); // показать на экране точку D
getch (); // подождать до нажатия клавиши
A.move (); // переместить точку А в начало координат
getch (); // подождать до нажатия клавиши
B.move(50, 60); // переместить точку B
getch (); // подождать до нажатия клавиши
closegraph();
}
При обращении к функции getch() программа останавливается и ждет ввода с клавиатуры любого символа, появляется возможность отследить смену изображений.
С этой же целью используется функция int kbhit (void) ( прототип в файле conio.h).
while (! Kbhit()); -задержка программы до нажатия клавиши.
Контрольные вопросы:
В чем суть объектно-ориентированного подхода к программированию? Дать определение класса.
Определение объекта класса по имени и с помощью указателя и динамического выделения памяти