Лабораторные работы (2009) (Московский Энергетический Институт)

Посмотреть архив целиком

Московский Энергетический Институт

Технический Университет













Лабораторная работа №1

Проектирование с помощью инструментального комплекса СИМПР.















Кузнецов Алексей

А-13-05









Москва, 2009 г.

Оглавление

Постановка задачи. 3

Общее описание предметной области. 4

1. Подробное текстовое описание 4

2. Схематичное изображение правил игры 4

Описание табличной модели. 5

Таблица 1. Отслеживание статуса игровой ситуации. 5

Таблица 2. Описание основных внутри игровых ситуаций. 6

Таблица 3. Обработка удара о кирпич. 6

Таблица 4. Удар о границу игрового поля. 7

Таблица 5. Логика движения доски. 7

Используемые источники и программное обеспечение. 8

Приложение. Выдержки из программного кода с комментариями. 9

1. Функция WinProc(). 9

2. Иерархия классов 17











































Постановка задачи.


Проектирование с помощью инструментального комплекса СИМПР задачи принятия решения на примере игры арканоид с упрощенными правилами (без бонусов).

Разработать модель принятия решения для реализации логики игры и логики действий игрока.


Указание: не менее трех таблиц по 6 условий и правил, или двух, но больших. Если объединить 1-4 и 2-3 таблицы, то данное условие будет удовлетворено, однако они разъединены во избежание ненужного роста числа правил.


В качестве дополнительной возможности, в программе можно отображать приходящие сообщения. Удобно при отладке и содержит “историю” действий процедуры-функции WinProc().


Файл Level.txt содержит описание «уровня» с описаниями 100 кирпичей в виде цифр 0 – свободное место, 1-5 обычные кирпичи, 6 – неразрушимый кирпич.

















































Общее описание предметной области.


Общие положения, описание объектов:


Действие в «Арканоиде» происходит в 1 плоскости.


Все игровые объекты состоят из пикселей.


Пиксель – наименьший логический элемент двумерного цифрового изображения в растровой графике. Неделимый объект прямоугольной формы, обладающий определенным цветом.


В игре пиксель – единица измерения длины.


Размеры объектов пишутся в формате «X * Y». Это означает, что объект имеет высоту X пикселей и ширину Y пикселей. Следует понимать, что высота – размер объекта по вертикали, ширина – размер объекта по горизонтали.


Скорости измеряются в пикселях в секунду.


За секунду изображение меняется 200 раз (200 фпс).


Основное игровое поле это ограниченный рамкой прямоугольник, занимающий левую сторону окна приложения (Рис 1). Имеет высоту 600 пикселей и ширину 400 пикселей. Большинство действий в рассматриваемой игровой ситуации происходит внутри игрового поля.

Игровое поле ограничено левой стенкой, правой стенкой, полом и потолком.


Блок (кирпич) – игровой объект, неподвижен, имеет прямоугольную форму и размеры 10 * 40. В игре есть 6 видов блоков. Они различаются по «прочности». Есть блоки с прочностью 1,2…5 единиц и блок с бесконечным запасом прочности. Их можно отличить визуально по цвету. Самый непрочный блок зеленого цвета. Далее в порядке возрастания прочности желтый, оранжевый, красный, синий и серый.


Платформа (доска, ракетка) – игровой объект прямоугольной формы серебристого цвета, имеет размеры 10 * 50. Управляется Игроком. Может перемещаться с максимальной скоростью 400 пикселей в секунду.


Шарик – игровой объект белого цвета, перемещается по полю с некоторой скоростью. Имеет размер 10 * 10 и круглую форму.


В верхней части игрового поля находится область с блоками. Она имеет размер 400 на 100 пикселей. Состоит из 100 «мест» размером 10 на 40 пикселей.


Рис. 1. Вид окна приложения графического модуля-интерпретатора.






Описание табличной модели.


В процессе разработки модели принятия решения для реализации логики игры и логики действий игрока были составлены 5 таблиц:


Таблица 1. Отслеживание статуса игровой ситуации.


Таблица предназначена для общего регулирования ситуации. Она управляет началом и остановом действий и дает команду делать очередной ход. Обработка начинается с неё.

Содержит 4 условия и 5 действий.

Полна и непротиворечива, не содержит логических отношений между условиями. Здесь и далее проверка выполнена в программно-инструментальном комплексе СИМПР.

C1

Началась ли игра?

C2

Первый ход?

C3

Ноль жизней?

C4

Все кирпичи сбиты?

R1

Ничего не делаем

R2

Задать базовую скорость для шарика

R3

Конец игры - победа

R4

Конец иргы - проигрыш

R5

Сделать ход

R6

Флаг первого хода установить выкл



Трансляция последовательная: С1, C2, C3, C4, P1, P2, P3, P4, P5.

Трансляция оптимизированная: C1, P1, C2, C3, P4, C4, P3, P5, P2.
















Таблица 2. Описание основных внутри игровых ситуаций.


Таблица – переключатель анализирует случившиеся за прошлый ход изменения в игровой ситуации, выделяет 3 основных типа и на основе их наличия перенаправляет дальнейшие действия. Рассматриваем удар шарика о кирпич, удар о ракетку, удар о пол, необходимость включения механизма случайного уничтожения кирпичей (СУ).

Содержит 4 условия и 4 действия.

Логические отношения:

  1. Удар о кирпич не позволяет срабатывать включению механизма СУ.

  2. Удар о доску расценивается как «междуходье» и также не дает механизму включится.

Полна и непротиворечива.


C1

Шарик ударился о кирпич?

C2

Шарик ударился о доску?

C3

Шарик ударился об пол?

C4

3 хода без попадания?

R1

-1 жизнь

R2

Инвертировать вертикальную скорость

R3

Увеличить скорость

R4

Уничтожить случайный кирпич


Трансляция последовательная: C1, C2, C3 ,C4, P1, P2, P3, P4, P5,.

Трансляция оптимизированная: C1, P1, C2, P2, C3, C4, P4, P5, P3.


Таблица 3. Обработка удара о кирпич.


Рассматривает все необходимые вопросы при ударе шарика о кирпич – уровень кирпича, тип удара, неуязвимость. Содержит логическое отношение если кирпич 1 уровня то он не может быть неразрушимым. Содержит 3 условия и 5 действий. Полна и непротиворечива.



C1

Кирпич 1 уровня?

C2

Шарик ударился о нижнюю/ верхнюю грань

C3

Кирпич неразрушим?

R1

Уничтожить кирпич

R2

Инвертировать вертикальную скорость

R3

Инвертировать горизонтальную скорость

R4

Уменьшить уровень кирпича

R5

Добавить очко



Трансляция последовательная: C1, C2, C3, P1, P2, P3, P4, P5, P6.

Трансляция оптимизированная: C2, C3, P5, P6, C1, P1, P2, P3, P4.


Таблица 4. Удар о границу игрового поля.


Таблица осуществляет управление логикой игры – принцип невыхождения за пределы игрового поля. Шарик не может вылететь за границу, это претит правилам игры. В таблице 3 условия и 2 действия. Она полна и непротиворечива. Есть правило «иначе» - если нет столкновений. Логическое отношение: если шарик достиг левой стены, он немог достигнуть правой.


C1

Удар о левую стену?

C2

Удар о правую стену?

C3

Удар о потолок?

R1

Инвертировать вертикальную скорость

R2

Инвертировать горизонтальную скорость


Трансляция последовательная: C1, C2, C3, P1, P2, P3, P4, P5, E.

Трансляция оптимизированная: C1, C3, P3, P1, C2, P4, P5, P2, E.



Таблица 5. Логика движения доски.


Для победы в игре игрок должен передвигать доску по игровому полю чтобы не дать шарику падать на пол. Эта таблица управляет перемещениями доски. В случае когда нельзя предсказать место падения шарика, оптимальной позицией доски признаем центральную. Таблица содержит 6 условий и 3 действия. Полна и непротиворечива.


Случайные файлы

Файл
55726.rtf
2567.rtf
148367.rtf
43028.rtf
145392.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.