Лабораторные работы (2010) (Отчет)

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

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

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












Отчет


По лабораторной работе №3


Программная модель на РДО.





























Выполнил: Пашков Сергей

группа: А-16-07








Содержание





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

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

Имитационная модель ................................................................................4

Типы ресурсов ....................................................................................4

Ресурсы ...............................................................................................5

Образцы операций .............................................................................5

Операции ............................................................................................9

Интерфейс ...................................................................................................10



















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


В лабораторной работе на базе РДО построено игровое приложение, имитирующее попадание грешников в ад. Люди должны пройти через ворота, которые открываются и закрываются с помощью клавиатуры, далее они попадают к чёрту, который превращает их в адептов. Черт также может быть на месте, а может уйти, что также управляется с клавиатуры. Если ворота закрыты или чёрта нет на месте, то люди собираются в очередь и ждут. Задача состоит в том, что бы превратить всех грешников в адептов.


Полное словесное описание предметной области


Дажее будет описано поведение игры во всех возможных ситуациях.


  • Сначала люди пребывают к воротам ада через определённые временные интервалы. Если ворота закрыты то люди встают в очередь, в противном случае они проходят дальше к котлу.

  • Ворота открываются и закрываются путём нажатия определённых клавиш на клавиатуре.

  • Чёрт стоит возле котла. Его также можно убрать от котла и вернуть обратно с помощью нажатия определённых клавиш на клавиатуре.

  • В ситуации, когда черта нет на месте, люди встают в очередь перед котлом и ждут возвращение черта.

  • Далее после того, как черт возвращается к котлу, если есть люди перед котлом, черт варит их и превращает в адептов.






Имитационная модель

Типы ресурсов

В работе имеют место два типа ресурсов: состояние и грешник. Их описание с указаниями и пояснениями будет приведено ниже.


$Resource_type Тип_Состояние : permanent

$Parameters

Не_вошли : integer

Входят : integer

Можно_входить : integer [0..1] = 1

Перед_вратами : integer

Врата_открыт : (открыто, закрыто) = открыто

В_очереди : integer

черт : (есть, нету) = есть

На_выход : integer

Вышли : integer

Общее_число_действий : integer

$End

$Resource_type Тип_грешник : temporary

$Parameters

сост : (нач, появл, перед, очередь, выход, кон)

$End


Тип ресурса состояние определяет почти все переменные в модели. Состояние ворот – открыты или закрыты, состояние грешника – в очереди, входит, не вошли, вышли, перед вратами, наличие черта – есть или нету и общее количество действий.


Тип ресурса грешник отражает состояние грешника в начале игры, когда он появляется, стоит в очереди, перед дверью, на выходе и в конце игры.






Ресурсы

В игре используется один ресурс состояния:

состояние : Тип_Состояние 10 0 1 0 * 0 * 0 0 0


Образцы операций


Появление грешника на экране.

$Pattern Обр_Появление : operation

$Relevant_resources

_состояние : Тип_Состояние Keep Keep

_грешник : Тип_грешник NonExist Create

$Time = Нормальное_Распределение(0.8, 0.1)

$Body

_состояние

Choice from _состояние.Не_вошли > 0 and _состояние.Можно_входить = 1

{11}

first

Convert_begin

Не_вошли set _состояние.Не_вошли - 1

Можно_входить set 0

Общее_число_действий set _состояние.Общее_число_действий + 1

Convert_end

Можно_входить set 1

Входят set _состояние.Входят + 1

Общее_число_действий set _состояние.Общее_число_действий + 1

_грешник

Convert_end


сост set появл

$End


Встать в очередь перед входом в ад

$Pattern Обр_Перед_входом : rule trace

$Relevant_resources

_состояние : Тип_Состояние Keep

_грешник : Тип_грешник Keep

$Body

_состояние

Choice from _состояние.Входят > 0

first

Convert_rule

Входят set _состояние.Входят - 1


Перед_вратами set _состояние.Перед_вратами + 1

_грешник


Choice from _грешник.сост = появл

first

Convert_rule

сост set перед

$End

Переход в очередь на варку в котле.

$Pattern Обр_Вход : operation

$Relevant_resources

_состояние : Тип_Состояние Keep Keep

_грешник : Тип_грешник Keep Keep

$Time = Нормальное_Распределение(2.2, 0.5)

$Body


_состояние

Choice from _состояние.Перед_вратами > 0 and _состояние.Врата_открыт = открыто

first

Convert_begin

Перед_вратами set _состояние.Перед_вратами - 1

В_очереди set _состояние.В_очереди + 1

Convert_end

Общее_число_действий set _состояние.Общее_число_действий + 1

_грешник

Choice from _грешник.сост = перед


first

Convert_begin

сост set очередь

Convert_end

сост set очередь

$End

Варка в котле.

$Pattern Обр_Обслуживание : operation

$Relevant_resources

_состояние : Тип_Состояние Keep Keep

_грешник : Тип_грешник Keep Keep

{71}

$Time = Нормальное_Распределение(2.5, 0.1)

$Body

_состояние

Choice from _состояние.В_очереди > 0 and _состояние.черт = есть

first

Convert_begin

В_очереди set _состояние.В_очереди - 1

На_выход set _состояние.На_выход + 1

Convert_end

Общее_число_действий set _состояние.Общее_число_действий + 1

{81}

_грешник

Choice from _грешник.сост = очередь

first

Convert_begin

сост set выход

Convert_end

сост set выход

$End

Становление адептом.

$Pattern Обр_Уход : rule

$Relevant_resources

{91}

_грешник : Тип_грешник Keep

_состояние : Тип_Состояние Keep

$Body

_грешник

Choice from _грешник.сост = выход

first

Convert_rule

сост set кон

_состояние


Choice from _состояние.На_выход > 0

first

Convert_rule

На_выход set _состояние.На_выход - 1

Вышли set _состояние.Вышли + 1

Общее_число_действий set _состояние.Общее_число_действий + 1

$End

Открыть врата.

$Pattern Обр_Открыть_врата : keyboard trace

$Relevant_resources

_состояние : Тип_Состояние Keep NoChange

$Time = 0.0

$Body

_состояние

Choice from _состояние.Врата_открыт = закрыто

first

Convert_begin

Врата_открыт set открыто

Общее_число_действий set _состояние.Общее_число_действий + 1

$End

Закрыть врата.

$Pattern Обр_Закрыть_врата : keyboard trace

$Relevant_resources

_состояние : Тип_Состояние Keep NoChange

$Time = 0.0

$Body

_состояние

Choice from _состояние.Врата_открыт = открыто

first

Convert_begin

Врата_открыт set закрыто

Общее_число_действий set _состояние.Общее_число_действий + 1

$End

Вернуть черта.

$Pattern Обр_Поставить_черта : keyboard trace

$Relevant_resources

_состояние : Тип_Состояние Keep NoChange

$Time = 0.0

$Body

_состояние

Choice from _состояние.черт = нету

first

Convert_begin

черт set есть

Общее_число_действий set _состояние.Общее_число_действий + 1

$End

Убрать черта.

$Pattern Обр_Убрать_черта : keyboard trace

$Relevant_resources

_состояние : Тип_Состояние Keep NoChange

$Time = 0.0

$Body

_состояние

Choice from _состояние.черт = есть

first

Convert_begin

черт set нету

Общее_число_действий set _состояние.Общее_число_действий + 1

$End

Операции

Ниже перечислены операции в представленной в приложении модели:

Открыть_врата : Обр_Открыть_врата 'O'

Закрыть_врата : Обр_Закрыть_врата 'C'

Поставить_продавца : Обр_Поставить_черта 'Y'

Убрать_продавца : Обр_Убрать_черта 'N'

Обслуживание : Обр_Обслуживание

Перед_Входом : Обр_Перед_входом

Вход : Обр_Вход

Появление_грешника : Обр_Появление

Уход : Обр_Уход






Интерфейс


Интерфейс программы является довольно простым, состоит из картинок и нескольких полей для вывода информации.





9




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

Файл
5354.rtf
5930-1.rtf
97093.rtf
903-1.rtf
48587.rtf




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