На этом шаге мы рассмотрим создание перекрывающихся окон.
На этом шаге мы рассмотрим пример использования изученных предикатов. В частности, разберем механизм создания перекрывающихся окон.
Перекрывающиеся окна создаются так, чтобы они одновременно удовлетворяли потребностям программ и были удобны для пользователя. Порядок, в котором окна создаются, определяется реализацией программы. Следующая программа иллюстрирует создание перекрывающихся окон.
/* Программа О к н а */ /* Назначение. Создание перекрывающихся окон */ predicates make_windows_write_text goal make_windows_write_text. clauses make_windows_write_text:- makewindow(1,7,7,"Жизнь звезды",3,12,10,40), cursor(3,8), write("ПОЯВИЛАСЬ ЧЕРНАЯ ДЫРА."),nl, makewindow(2,7,7," Жизнь звезды ",5,14,10,40), shiftwindow(2), cursor(3,12), write("ЗВЕЗДА ВЗОРВАЛАСЬ."),nl, makewindow(3,7,7," Жизнь звезды ",7,16,10,40), shiftwindow(3), cursor(3,11), write("ЗВЕЗДА СВЕТИТ."),nl, makewindow(4,7,7," Жизнь звезды ",9,18,10,40), shiftwindow(4), cursor(3,11), write("ЗВЕЗДА РОДИЛАСЬ."),nl, cursor(6,4), write("Нажмите пробел"), readchar(_), removewindow, cursor(6,2), write("Нажмите пробел "), readchar(_), removewindow, cursor(6,2), write("Нажмите пробел "), readchar(_), removewindow, cursor(7,2), write("Нажмите пробел "), readchar(_), removewindow, exit. /* К о н е ц программы */
Результат работы программы можно посмотреть на рис. 1.
Рис. 1. Результат работы программы
В данной программе целью является правило make_windows_write_text. Задача этого правила - создать четыре перекрывающихся окна и вывести в них определенный текст. Текст состоит из четырех предложений, описывающих историю существования звезды. Окна создаются в том порядке, который задан их номерами, а удаление производится в обратном порядке, то есть, начиная с окна 4. При таком порядке удаления сообщения с экрана исчезают постепенно. Заметьте, что окна слегка сдвинуты друг относительно друга. Это сделано для того, чтобы показать существование нескольких окон одновременно.
На следующем шаге мы рассмотрим создание меню с помощью окон.