Отчет (990496)
Текст из файла
Московский Энергетический Институт
(Технический Университет)
Отчет
По лабораторной работе №3
курс: ТииИО
тема: работа с РДО
выполнил: Ананькин С.М.
группа: А-13-04
2008 г.
Содержание
Постановка задачи ......................................................................................3
Описание предметной области ..................................................................3
Имитационная модель ................................................................................4
Типы ресурсов ....................................................................................4
Ресурсы ...............................................................................................5
Образцы операций .............................................................................5
Операции ............................................................................................9
Интерфейс ...................................................................................................10
Постановка задачи
В лабораторной работе на базе РДО построено игровое приложение, имитирующее противостояние человека и зомби в замкнутом помещении. Человек, являясь протагонистом игрока, может управляться с помощью клавиатуры (стрелки отвечают за движение, пробел – за стрельбу). Зомби постоянно движется на человека, и считается, что достигнув его, съедает.
Полное словесное описание предметной области
Дажее будет описано поведение игры во всех возможных ситуациях с указаниями на возможные «концовки» - удачную для игрока и не очень.
-
Модель поведения зомби проста – мертвец выбирает одно из восьми возможны направлений (запад, восток, север, юг, юго-восток, юго-запад, северо-восток, северо-запад) согласно положению игрока, так чтобы все время двигаться по направлению к нему.
-
Человек перемещается по нажатию клавиш в одном из четырех направлений.
-
На любом доступном расстоянии человек завтрачивает один выстрел на то, тобы убить зомби.
-
Игра заканчивается, если один из противников мертв.
В игре также имеются полувиртуальные аспекты, такие как некоторые неиспользующиеся в первой версии программы свойства (например, количество патронов у игрока равно двенадцати, хотя на деле одного патрона всегда достаточно, чтобы победить). Эти свойства имеют целью продемострировать умение работать с незатронутыми непосредственно игровым процессом аспектами РДО.
Имитационная модель
Типы ресурсов
В работе имеют место два типа ресурсов: зомби и люди. Их описание с указаниями и пояснениями будет приведено ниже.
| $Resource_type Зомби : permanent $Parameters Состояние : (жив, мертв) = жив Тип : (Человек, Собака) = Человек Икс : integer[0..15] = 1 Игрик : integer[0..15] = 1 Действие : (идет, кусает) = идет $End | $Resource_type Красавец : permanent $Parameters Состояние : (здоров, мертв) = здоров Патроны : integer[0..12] = 12 Икс : integer[0..15] = 1 Игрик : integer[0..15] = 1 Убито : integer = 0 Этап : (стоим, идем, стреляем) = стоим $End |
Тип ресурса «человек» отражает необходимые свойства протагониста игрока, такие как состояние его здоровья, необходимое для выполнения одного из конечных условий, количество патронов, координаты, виртуальный параметр количества убитых зомби, а так же этап, на котором находится человек. Последний параметр необходим программе для того, чтобы действия игрока и зомби выполнялись поочереди, и на каждое перемещение игрока приходилось одно перемещение зомби.
Тип ресурса «зомби» отражает свойства противника человека, такие как его состояние, координаты и текущее действие. Последний параметр имеет два варианта значений – идет и кусает. Второй из двух значений необходим для получения игроком повреждений от укуса зомби.
Ресурсы
Разработанное приложение – имитация противостояния «один на один», поэтому в работе имеется два ресурса – один типа «человек» и один типа «зомби»:
| Кика : Красавец * * 7 7 * * | Зомбота : Зомби * * * * * |
Образцы операций
В приложении представлены несколько образцов операций, которые по определенным признакам можно разбить на некие эфемерные группы:
1. Операции обработки ввода, осуществляющие движение человека:
| //перемещение по горизонтали $Pattern Образец_Кика_Горизонталь : keyboard $Parameters _param : integer $Relevant_resources _кика : Красавец Keep NoChange $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = идем and (_кика.Икс < 14 and _кика.Икс > 0) first Convert_begin Икс set _кика.Икс + _param Этап set стоим $End | //перемещение по вертикали $Pattern Образец_Кика_Вертикаль : keyboard $Parameters _param : integer $Relevant_resources _кика : Красавец Keep NoChange $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = идем and (_кика.Игрик < 14 and _кика.Игрик > 0) first Convert_begin Игрик set _кика.Икс + _param Этап set стоим $End |
2. Действия нанесения и получения урона
| //кика умирает $Pattern Кика_Принимает_Удар : operation $Relevant_resources _зомбота : Зомби NoChange NoChange _кика : Красавец Keep NoChange $Time = Время_одного_хода $Body _зомбота Choice from _зомбота.Действие = кусает _кика Choice NoCheck Convert_begin Состояние set мертв $End | //зомбота умирает $Pattern Зомби_Принимает_Удар : operation $Relevant_resources _кика : Красавец NoChange NoChange _зомбота : Зомби Keep NoChange $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стреляем _зомбота Choice NoCheck Convert_begin Состояние set мертв $End |
| //зомбота кусает $Pattern Зомби_Атакует : operation $Relevant_resources _кика : Красавец NoChange NoChange _зомбота : Зомби Keep NoChange $Time = Время_одного_хода $Body _кика Choice NoCheck _зомбота Choice from _зомбота.Икс - _кика.Икс < 2 and _зомбота.Игрик - _кика.Игрик < 2 Convert_begin Действие set кусает $End | //мочить $Pattern Образец_Кика_Стреляет : keyboard $Relevant_resources _зомбота : Зомби NoChange NoChange _кика : Красавец Keep NoChange $Time = Время_одного_хода $Body _зомбота Choice NoCheck _кика Choice from abs(_кика.Икс - _зомбота.Икс) < 7 and _кика.Патроны > 0 first Convert_begin Патроны set _кика.Патроны - 1 Этап set стреляем $End |
3. Перемещение Зомби
| $Pattern Образец_Зомбота_ВлевоВниз : operation $Relevant_resources _кика : Красавец Keep Keep _зомбота : Зомби Keep Keep $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стоим Convert_begin Этап set идем _зомбота Choice from _зомбота.Икс > _кика.Икс and _зомбота.Игрик > _кика.Игрик first Convert_begin Икс set _зомбота.Икс - 1 Игрик set _зомбота.Игрик - 1 $End | $Pattern Образец_Зомбота_ВлевоВверх : operation $Relevant_resources _кика : Красавец Keep Keep _зомбота : Зомби Keep Keep $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стоим Convert_begin Этап set идем _зомбота Choice from _зомбота.Икс > _кика.Икс and _зомбота.Игрик < _кика.Игрик first Convert_begin Икс set _зомбота.Икс - 1 Игрик set _зомбота.Игрик + 1 $End |
| $Pattern Образец_Зомбота_ВправоВниз : operation $Relevant_resources _кика : Красавец Keep Keep _зомбота : Зомби Keep Keep $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стоим Convert_begin Этап set идем _зомбота Choice from _зомбота.Икс < _кика.Икс and _зомбота.Игрик > _кика.Игрик first Convert_begin Икс set _зомбота.Икс + 1 Игрик set _зомбота.Игрик - 1 $End | $Pattern Образец_Зомбота_ВправоВверх : operation $Relevant_resources _кика : Красавец Keep Keep _зомбота : Зомби Keep Keep $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стоим Convert_begin Этап set идем _зомбота Choice from _зомбота.Икс < _кика.Икс and _зомбота.Игрик < _кика.Игрик first Convert_begin Икс set _зомбота.Икс + 1 Игрик set _зомбота.Игрик + 1 $End |
| $Pattern Образец_Зомбота_Влево : operation $Relevant_resources _кика : Красавец Keep Keep _зомбота : Зомби Keep Keep $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стоим Convert_begin Этап set идем _зомбота Choice from _зомбота.Икс > _кика.Икс first Convert_begin Икс set _зомбота.Икс - 1 $End | $Pattern Образец_Зомбота_Вправо : operation $Relevant_resources _кика : Красавец Keep Keep _зомбота : Зомби Keep Keep $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стоим Convert_begin Этап set идем _зомбота Choice from _зомбота.Икс < _кика.Икс first Convert_begin Икс set _зомбота.Икс + 1 $End |
| $Pattern Образец_Зомбота_Вверх : operation $Relevant_resources _кика : Красавец Keep Keep _зомбота : Зомби Keep Keep $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стоим Convert_begin Этап set идем _зомбота Choice from _зомбота.Игрик < _кика.Игрик first Convert_begin Икс set _зомбота.Игрик + 1 $End | $Pattern Образец_Зомбота_Вниз : operation $Relevant_resources _кика : Красавец Keep Keep _зомбота : Зомби Keep Keep $Time = Время_одного_хода $Body _кика Choice from _кика.Этап = стоим Convert_begin Этап set идем _зомбота Choice from _зомбота.Игрик > _кика.Игрик first Convert_begin Икс set _зомбота.Игрик - 1 $End |
Операции
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














