Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Titulnye_listy (Восстановлен) (Восстановлен).docx
Скачиваний:
2
Добавлен:
26.09.2019
Размер:
325.79 Кб
Скачать

4.4 Кнопка «о программе»

При нажатии на кнопку меню «О программе» вызывается пользовательская функция info().

Функция info() очищает экран с помощью функции cleardevice() из стандартной библиотеки graphics.h, открывает тектовый файл info.txt для чтения при помощи функции fopen из стандартной библиотеки stdio.h. Затем в цикле for функцией fscanf() из стандартной библиотеки stdio.h читается строка из файла и выводится на экран при помощи функции outtextxy() из библиотеки graphics.h. Далее функцией fclose() из библиотеки stdio.h файл закрывается. Затем, при помощи функции outtextxy(), на экран выводится информация об управлении и авторе игры. Результат работы функции представлен на рисунке 4.5.

Рисунок 4.5 – О программе

4.5 Кнопка «Выход»

При нажатии на кнопку меню «Выход» вызывается функция setrecords() из пользовательской библиотеки records.h. При помощи функций closegraph() из библиотеки graphics.h, getch() из библиотеки conio.h, exit() из библиотеки process.h происходит закрытие графического режима, задержка до нажатия любой клавиши и прекращение выполнения программы соответственно.

4.6 Пользовательская библиотека «drawing.H»

В файле drawing.h описываются функции прорисовки графического интерфейса. Все функции построены на основе функций построения графических примитивов из стандартной библиотеки graphics.h, например, bar(), bar3d(), line(), ellipse(). Также используются функции задания цвета рисования, стиля заливки и непосредственно самой заливки: setcolor(), setfillstyle(), floodfill().

Функция pm() рисует пункт меню, цвет, координаты и название пункта зависят от передаваемых в функцию значений, в качестве которых используются две целочисленные переменные: nomer и nach. Первая отвечает за номер пункта, а вторая – активен ли пункт меню или нет.

Функция back() рисует колышки и с помощью функции outtextxy() выводит на экран заголовки информации о текущем перекладывании. Вызывается функцией new_game().

Функция resst() восстанавливает колышки в первоначальный вид. Вызывается функциями disk_add() и disk_del(), то есть после снятия или добавления очередного диска. В качестве формальных параметров используются значения координат x и y нижней границы колышка.

Функция cylinder() рисует цилиндр. Используется при рисовании дисков и колышков. Параметрами функции являются: координаты x и y, радиус основания по оси x, цвет линий, цвет заливки и высота. Высота является параметром по умолчанию со значением 0. Если при вызове функции высота не указана, то она равна значению переменной h, которое расчитывается в функции new_game() и зависимосит от количества дисков.

Функция disk_add() рисует диск заданного номера на заданном колышке. Формальными параметрами функции являются номер колышка и номер диска.

Функция disk_del() стирает диск заданного номера на заданном колышке. Формальными параметрами функции являются номер колышка и номер диска.

Функции out_disk(), out_from(), out_to(), out_count() выводят на экран значения переносимого диска, колышка с которого сняли диск, колышка на который диск добавили и количества перекладываний, предварительно преобразуя данные в строки с помощью функции itoa() из стандартной библиотеки stdlib.h.

Функция strelka() с помощью функции drawpoly() из библиотеки graphics.h рисует стрелку, которая указывает активный колышек. При помощи функции floodfill() стрелка заливается ранее установленным цветом и шаблоном заливки. Формальными параметрами функции являются номер колышка и цвет стрелки. Если цвет стрелки равен нулю, то на месте стрелки рисует прямоугольник цветом фона.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]