Библиотеки Turbo Prolog’а
Штатные средства языка Турбо Пролог достаточны только для того, чтобы писать на нем учебные программы. Для решения научных задач их недостаточно, поэтому разработчики программного обеспечения дополняют эти средства специальными библиотеками программ. Для использования например BGI-графики, т.е. стандартной Borland-графики в Турбо Прологе необходимо в разделе constants определить маршрут для bgi-модулей в виде
Constants bgi_path=”e:\\prolog\\bgi”
где указывается каталог, в котором находятся bgi-модули, затем подключить модуль описаний
include”e:\\prolog\\programs\\GRAPDECL.PRO”.
После этого в предикате необходимо инициализировать графику предикатом
initgraph(detect, 0, Graphdriver, Graphmode, bgi_path).
После такой инициализации становятся доcтупными предикаты стандартной Borland-графики, например:
arc(x, y, beg, end, r) – дуга с центром в (х, у), с углом (end-beg) и радиусом r.
line(xstart, ystart, xend, yend) – линия с начальной и конечной точками.
circle(x, y, r) – круг с центром в точке (х, у) и радиусом r.
rectangle(x1, y1, x2, y2) – прямоугольник с координатами противоположных вершин.
outtextxy(x, y, Title) – вывод текста Title, начиная с точки (х, у).
Полный список доступных операторов можно найти в справке Help.
Пример организации движения слов в Прологе.
сonstants
bgi_path=”e:\\prolog\\prolog\\bgi”
include “e:\\prolog\\prolog\\programs\\GRAPDECL.PRO”
Predicates
dvig(integer, string)
dvi(integer, string)
goal
initgraph(detect, 0, GraphDriver, PraphMode, bgi_path), setbkcolor(3), setcolor(12),
settextstyle(0, 0, 3), outtextxy(10, 50, “волк”), outtextxy(10, 70, “коза”), outtextxy(10, 90, «капуста»),
outtextxy(10, 110, “один”), getimage(10, 50, 100, 70,X), dvig(1, X),
getimage(10, 70, 100, 90, Y), dvig(1, Y), getimage(10, 90, 100, 110, Z), dvi(500, Z), readchar(_),
closegraph.
clauses
dvig(500,_).
dvig(A,X):–putimage(A, 0, X, 1), putimage(A, 0, X, 1), A1=A+1, A<500, dvig(A1, X).
dvi(1,_).
dvi(A,X):–putimage(A, 0, X, 1), putimage(A, 0, X, 1), A1=A-1, A>1, dvi(A1, X).