Лекция №15 - Игры в Visual Prolog 7.1
Код роботи: 1343
Вид роботи: Лекція
Предмет: Технологія створення програмних та інтелектуальних систем (Технология создания программных и интеллектуальных систем)
Тема: №15 - Игры в Visual Prolog 7.1
Кількість сторінок: 6
Дата виконання: 2016
Мова написання: російська
Ціна: 100 грн
1. Объектные факты в Visual Prolog 7.1.
В этой главе вы научитесь реализовывать игры в Visual Prolog. Конечно же, хорошая игра это как хорошая поэма. Недостаточно выучить русский язык и правила стихосложения для того, чтобы писать как Пушкин.
Поэт, кроме знания языка, на котором он будет писать, нуждается в воображении, креативности, и т.д. То же самое относится к хорошему разработчику игр. Вам нужно много творчества для того, чтобы сделать что-то наподобие Tetris или Space Invaders.
Я использовал эти примеры для того, чтобы показать, что хорошие игры не зависят от прихотливой графики или звуковых эффектов. Важными особенностями являются тревожное ожидание, длительное напряжение и ощущение награды за хорошую работу.
Однажды, молодой человек спросил Лопе де Вега (Lope de Vega), как писать стихи. Ответ был такой: Это просто: Заглавная буква в начале каждой строфы и рифма в конце. «Что же мне вставить в середину?», спросил парень. В середину, hay que poner talento1, сказал Лопе де Вега.
В этом уроке рассматривается несколько техник, подобных заглавным буквам и рифме. Чтобы получить хорошую игру, вам потребуется добавить к рецепту талант.
Игра, которую вы реализуете, простая. Есть червяк, быстро ползущий по экрану. Игрок должен изменять направление его движения для того, чтобы он не врезался в стены и препятствия. Вам необходимо реализовать следующие элементы:
1. Окно, по которому червяк будет ползать. Окно должно иметь четыре кнопки для управления движением червяка.
2. Класс состояния, который описывает направление движения и положение червя. Он экспортирует предикаты mov/0, для изменения положения червя, и turn/2, который может быть использован для его поворотов.
3. Класс, который рисует изображение положения червя. Он экспортирует предикат snap-shot(Win). Обратите внимание на следующую деталь: предикат snapshot/1 не может нарисовать червя прямо на окне. Это бы заставило экран мерцать. Он должен построить изображение, и только затем нарисовать его на экране.
4. Таймер, который вызывает mov/0 и snapshot/1 через фиксированные интервалы, для создания иллюзии движения.
Мы знаем, что делать; давайте это делать. До этого момента я избегал создания объектов. Действительно, каждый раз, когда вы создавали класс, вам рекомендовалось снимать галочку Creates Objects. Однако, если мы жестко будем следовать этой установке, наша игра будет иметь очень неприятное свойство. Если вы проиграете, выйдете из текущей игры и попробуете начать новую, вы найдёте, что новая игра не в своём изначальном состоянии. На самом деле она будет в состоянии, где вы проиграли старую. Проблема в том, что переменные, используемые для описания состояния, имеют память, которая переходит от одной формы к другой. Объекты были изобретены для предотвращения такого рода неприятного поведения. Поэтому, давайте используем эту очень хорошую возможность изучить, как создавать объекты и работать с их состояниями.