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

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

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

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












Отчет


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

«Работа с РДО»



















выполнил: Демич А.А.

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









Москва 2009 г.











Содержание





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

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

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

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

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

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

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

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
















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


Созданное в лабораторной работе приложение имитирует модель “стрелка”.

Модель состоит из трех объектов: Стрелка, Преступника, Пули.

Пользователю предоставлена возможность выбора позиции “стрелка” и возможность выстрела по “преступнику”. Игра завершается в том случае, если у преступника кончились все жизни.


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


Опишем процесс игры.


Сначала игрок устанавливает позицию “стрелка” клавишами «вправо» и «влево». Всего возможных позиций расположения “стрелка” - 10.

Позиция “преступника” изменяется автоматически, изменяясь по направлению то в правую сторону экрана, то в левую.

В начале игры “преступнику” по умолчанию выставляется количество жизней равное трем.


После выбора удачной позиции игрок производит выстрел по цели, клавишей «пробел». Далее из пистолета стрелкавылетает пуля.

Траектория полета пули зависит от выбранной позиции выстрела. Если траектория полета пули и траектория движения “преступника” пересекаются, то у “преступника” вычитается одна жизнь. В противном случае, пуля пролетает мимо и не задевает “преступника”.

Игра заканчивается, когда у “преступника” закончатся все жизни или пройдет 100 единиц виртуального времени бездействия системы.




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

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

В лабораторной работе представлено четыре типа ресурсов: Стрелок, Пуля, Преступник и КонецПрограммы. Их описание:

$Resource_type Стрелок : permanent

$Parameters

X : integer = 225

$End


$Resource_type Пуля : permanent

$Parameters

X : integer = 266

Y : integer = 420

Состояние : (Летит, Нелетит) = Нелетит

$End


$Resource_type Преступник : permanent

$Parameters

X : integer = 225

Y : integer = 20

Ширина : integer = 50

Состояние : (Неподбит, Подбит) = Неподбит

Жизнь : integer = 3

Конец_движ : (Влево, Вправо) = Вправо

$End


$Resource_type КонецПрограммы : permanent

$Parameters

Состояние : (Да, Нет) = Нет

$End

У Стрелка имеется один параметр - X. X – это координаты в пикселях по оси Х. Координаты по оси У нам не нужны, т.к. движения Стрелка по оси y не прибавят смысла к общей картине.

У пули три параметра: X, Y – координаты расположения пули в пространстве. Состояние – Летит или не Летит, говорит об активности пули в данный момент.

У преступника шесть параметров: X, Y - координаты расположения пули в пространстве. Ширина – нужна для определения области попадания пули.

Состояние - Подбит или Не подбит для реализации счетчика жизней.

Жизнь – количество жизней. Конец_движ – Влево или Вправо, необходимо для задания области перемещения объекта.

У типа ресурса КонецПрограммы один параметр – Состояние – Да или Нет, играет роль флага, как только параметр принимает значение – Да, то действие программы завершается.



Ресурсы

В работе представлено четыре ресурса::

$Resources

ССтрелок : Стрелок *

ППуля : Пуля * * *

ППреступник : Преступник * * * * * *

ККонец_программы : КонецПрограммы *

$End







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

  1. Операции «подготовки» к игре, т.е. выбор позиции выстрела и сам выстрел.



$Pattern Образец_смещение_влево : keyboard

$Relevant_resources

Strelok : ССтрелок Keep Keep

Pula : ППуля Keep Keep

$Time = Time{ Интервал между событиями }

$Body

Strelok

Choice from ККонец_программы.Состояние <> Да

Convert_begin

X set ССтрелок.X - 50

Pula

Choice from ККонец_программы.Состояние <> Да

Convert_begin

X set ППуля.X - 50

$End





$Pattern Образец_смещение_вправо : keyboard

$Relevant_resources

Strelok : ССтрелок Keep Keep

Pula : ППуля Keep Keep

$Time = Time{ Интервал между событиями }

$Body

Strelok

Choice from ККонец_программы.Состояние <> Да

Convert_begin

X set ССтрелок.X + 50

Pula

Choice from ККонец_программы.Состояние <> Да

Convert_begin

X set ППуля.X + 50

$End








$Pattern Образец_начало_пуля : keyboard

$Relevant_resources

Pula : ППуля Keep Keep

$Time = Time

$Body

Pula

Choice from

Pula.Состояние = Нелетит and ППуля.Y > ППреступник.Y and ККонец_программы.Состояние <> Да

Convert_begin

Состояние set Летит

$End





  1. Операции, осуществляющие перемещение пули.

$Pattern Образец_полет_пуля : operation

$Relevant_resources

Pula : ППуля Keep Keep

$Time = Time

// После $Body описывается использование ресурсов

$Body

Pula

Choice from

Pula.Состояние = Летит and Pula.Y <> ППреступник.Y

Convert_begin

Y set ППуля.Y - 20

$End






$Pattern Образец_непопал : operation

$Relevant_resources

Pula : ППуля Keep Keep

$Time = Time

$Body

Pula

Choice from ППуля.Состояние = Летит and ППуля.Y = 20 and ППреступник.Состояние = Неподбит

Convert_begin

Y set 420

Состояние set Нелетит

$End





$Pattern Образец_попадание : operation

$Relevant_resources

Pula : ППуля Keep Keep

Prestupnik : ППреступник Keep Keep

$Time = Time

$Body

Pula

Choice from ППуля.Состояние = Летит and ППреступник.Y = ППуля.Y and ППреступник.X <= ППуля.X and ППреступник.X + 50 >= ППуля.X

Convert_begin

Y set 420

Состояние set Нелетит

Prestupnik

Convert_begin

Состояние set Подбит

$End







  1. Операции, осуществляющие перемещение преступника.

$Pattern Образец_конец_движ_вправо : operation

$Relevant_resources

Prestupnik : ППреступник Keep Keep


$Time = Time{ Интервал между событиями }

// После $Body описывается использование ресурсов

$Body

Prestupnik

Choice from

Prestupnik.X = 445

Convert_begin

Конец_движ set Вправо

$End


$Pattern Образец_конец_движ_влево : operation

$Relevant_resources

Prestupnik : ППреступник Keep Keep


$Time = Time{ Интервал между событиями }

// После $Body описывается использование ресурсов

$Body

Prestupnik

Choice from

Prestupnik.X = 5

Convert_begin

Конец_движ set Влево


$End


$Pattern Образец_движ_влево : operation

$Relevant_resources

Prestupnik : ППреступник Keep Keep


$Time = Time{ Интервал между событиями }

// После $Body описывается использование ресурсов

$Body

Prestupnik

Choice from

Prestupnik.Жизнь > 0 and Prestupnik.X > 0 and Prestupnik.X <> 5 and Prestupnik.Конец_движ = Вправо

Convert_begin

X set Prestupnik.X - 20

$End


$Pattern Образец_движ_вправо : operation

$Relevant_resources

Prestupnik : ППреступник Keep Keep


$Time = Time{ Интервал между событиями }

// После $Body описывается использование ресурсов

$Body

Prestupnik

Choice from

Prestupnik.Жизнь > 0 and Prestupnik.X < 450 and Prestupnik.X <> 445 and Prestupnik.Конец_движ = Влево

Convert_begin

X set Prestupnik.X + 20

$End





  1. Остальные операции:

$Pattern Образец_Конец_программы : operation

$Relevant_resources

Konec : ККонец_программы Keep Keep


$Time = Time

$Body

Konec

Choice from

ППреступник.Жизнь = 0

Convert_end

Состояние set Да

$End



$Pattern Образец_жизни : operation

$Relevant_resources

Prestupnik : ППреступник Keep Keep


$Time = Time{ Интервал между событиями }

$Body

Prestupnik

Choice from Prestupnik.Состояние = Подбит

Convert_begin

Жизнь set ППреступник.Жизнь - 1

Состояние set Неподбит

$End


Операции:

Операции, представленные в приложении:


Операция_начало_пуля : Образец_начало_пуля 'SPACE'

Операция_полет_пуля : Образец_полет_пуля

Операция_смещение_влево : Образец_смещение_влево 'LEFT'

Операция_смещение_вправо : Образец_смещение_вправо 'RIGHT'

Операция_попадание : Образец_попадание

Операция_непопал : Образец_непопал

Операция_Жизнь : Образец_жизни

Операция_движ_влево : Образец_движ_влево

Операция_движ_вправо : Образец_движ_вправо

Операция_конец_движ_вправо : Образец_конец_движ_вправо


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

Файл
159612.rtf
42511.rtf
31525.rtf
maslo.doc
VIRSOOB1.DOC




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