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

2015-08-22СтудИзба

Описание файла

Файл "Отчет" внутри архива находится в следующих папках: Лабораторные работы (2009), RDO-BowMaster. Документ из архива "Лабораторные работы (2009)", который расположен в категории "". Всё это находится в предмете "теория игр и исследование операций" из 8 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "теория игр и исследование операций" в общих файлах.

Онлайн просмотр документа "Отчет"

Текст из документа "Отчет"

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

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

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

Проектирование с помощью системы интеллектуального имитационного моделирования РДО

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

А-13-05

Москва, 2009 г.

Оглавление

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

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

Описание имитационной модели 5

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

Ресурсы 5

Операции 6

Интерфейс 7

Выполнение 7

Приложение 8

Функции 8

Последовательность 9

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

Спроектировать модель с помощью системы интеллектуального имитационного моделирования РДО.

Должна быть реализована возможность графически отображать состояние моделируемой системы в реальном времени.

Объект моделирования – симулятор стрельбы из лука BowMaster.

В модели присутствуют объекты 4 типов:

- Мишень (1),

- Лук (2),

- Стрела (3),

-Ветер (4).

Модель рассчитана на участие игрока – человека (ЛПР).

В начале прогона модели в запасе игрока 10 стрел.

Игрок выпускает стрелы из лука по одной в интерактивном режиме (по нажатию кнопки на клавиатуре).

Каждый полет стрелы характеризуется набором параметров (подробнее в описании предметной области ниже).

При попадании стрелы в мишень, игрок набирает очки (подробнее в п.о.).

Цель игрока – набрать максимальное число очков.

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

Игрой назовём один прогон модели.

В начале игры у игрока в запасе 10 стрел. Мишень движется с постоянной скоростью в вертикальном направлении на малом расстоянии от лука. В случае если мишень достигает верхней или нижней границы игрового поля, она начинает двигаться в противоположном направлении. В верхнем левом углу игрового поля отображается подробная статистика о состоянии системы в текущий момент. Правее расположена информация о кнопках управления моделью. Игрок выпускает стрелы из лука с помощью кнопки A. Каждый выстрел характеризуется набором параметров:

  • Начальным углом наклона по отношению к нижней границе игрового поля (кнопки UP DOWN).

  • Начальной скоростью (кнопки LEFT RIGHT).

  • Позицией выстрела (вертикальное позиционирование лука, кнопки W S)

Эти параметры выбираются до выстрела с помощью кнопок клавиатуры и значения отражаются в статистике.

После выстрела стрела летит по баллистической траектории. На её полет начинает влиять ветер (точнее он изменяет горизонтальную составляющую скорости стрелы). Мощность ветра есть случайная величина, распределённая по равномерному закону распределения. Её можно видеть в статистике модели, а также внизу игрового поля в виде меняющей длину и направление синей контурной стрелки.

Стрела может завершить полет в 2-х типах случаев. Первый: стрела долетела до одной из границ игрового поля (левая, правая, нижняя, верхняя). В этом случае она просто исчезнет и можно стрелять снова.

Второй: стрела попадает в мишень, тогда игроку добавляются очки в зависимости от положения мишени. Мишень может находиться в одном из трёх положений: близко – 1 очко за попадание, средне – 2 очка, далеко – 3 очка. Положение мишени регулирует игрок кнопками 1-3 на клавиатуре. После попадания в мишень стрела исчезает и снова можно стрелять.

Если в запасе игрока нет стрел, отображается окно с сообщением о конце моделирования и количеством набранных игроком очков. Прогон завершается через 7 секунд.

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

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

Типы ресурсов используются для описания структур объектов моделируемой системы.

В модели 1 тип ресурсов, описывающий всю моделируемую ситуацию. Ресурс постоянный.

$Resource_type Игровая_Ситуация : permanent

$Parameters

Где_Мишень : (f, s, t) = f Позиция мишени в 1 из 3-х

У_Мишени : integer [-10..210] = 0 Вертикальная позиция мишени

У_Лука : integer [0..200] = 50 Вертикальная позиция лука

Стрел_Осталось : integer [-10..50] = 10 Сколько стрел в запасе у игрока

Летит : (нет, да) = нет Находится ли стрела в полете

Х_Скорость : real [-40.0..40.0] = 0.0 Горизонтальная составляющая скорости

У_Скорость : real [-40.0..40.0] = 0.0 Вертикальная составляющая скорости

Х_Позиция : real [-50.0..900.0] = 1.0 Горизонтальная координата

У_Позиция : real [-100.0..600.0] = 0.0 Вертикальная координата

Очки : integer [0..150] = 0 Количество очков на счету игрока

Полет : (нет, да) = нет Исключение бесконечного вызова обработки полета

Sim : (нет, да) = нет Продолжать ли прогон модели

D : integer [-1..1] = 1 Направление движения мишени

W : real [-0.2..0.2] = 0.0 Мощность ветра

Wi : integer [-10..10] = 0 Преобразованный показатель мощности

WH : integer [0..60] = 0 Частота генерации скорости ветра

Показать_Итог : (нет, да) = нет

Конец : (нет, да) = нет

Сила_Выстрела : real [5.0..25.0] = 12.5 Регулирует начальную скорость стрелы

Угол_Выстрела : real [0.175..1.4] = 0.4 Регулирует начальный угол траектории

$End

Ресурсы

Единственный ресурс, собственно сама игровая ситуация

$Resources

Ситуация : Игровая_Ситуация * * * * * * * * * * * * * * * * * * * *

$End

Операции

Каждому образцу операции соответствует одна операция.

Список:

$Operations

// Изменяет положение и скорость стрелы

Оп_По : О_Полет

// Генерирует новое значение мощности ветра

Оп_В : WindH

// Переставляем мишень в каждую из 3-х позиций

Оп_П1 : О_Позиция_Мишени_1 '1'

Оп_П2 : О_Позиция_Мишени_2 '2'

Оп_П3 : О_Позиция_Мишени_3 '3'

// Перемещаем лук вверх или вниз

Оп_ЛВ : О_Лук_Вверх 'W'

Оп_ЛН : О_Лук_Вниз 'S'

// Совершить выстрел из лука

Оп_КФ : О_Выстрел 'A'

// Увеличение или уменьшение угла наклона выстрела

Op_AU : О_Угол_Вверх 'UP'

Op_AD : О_Угол_Вниз 'DOWN'

// Увеличение/уменьшение начальной скорости стрелы (сила выстрела)

Оп_СМ : О_СилаМ 'LEFT'

Оп_СП : О_СилаП 'RIGHT'

// Два типа завершения полета стрелы

Оп_ЕП1 : О_Конец_Полета1

Оп_ЕП2 : О_Конец_Полета2

// Продолжение прогона

Оп_Игра : Sim

// Инициализация терминации прогона

End : EndPoint

$End

Интерфейс

Интерфейс состоит из одного кадра анимации.

На нём отображается подробная статистика, лук, стрела, мишень, «ветрометр», информация по управляющим кнопкам, окно завершения прогона.

Выполнение

Объект прогона :

Model_name = mymodel

Resource_file = mymodel

OprIev_file = mymodel

Frame_file = mymodel

Frame_number = 1

Show_mode = Animation

Show_rate = 1.0

Terminate_if Ситуация.Конец = да Условие завершения прогона

Приложение

Функции

// Расчет координатной позиции мишени

$Function Pos : integer

$Type = algorithmic

$Parameters

_p : such_as Игровая_Ситуация.Где_Мишень

$Body

Calculate_if _p = f Pos = 300

Calculate_if _p = s Pos = 450

Calculate_if _p = t Pos = 600

$End

// Расчет очков за попадание

$Function Score : integer

$Type = algorithmic

$Parameters

_p : such_as Игровая_Ситуация.Где_Мишень

$Body

Calculate_if _p = f Score = 1

Calculate_if _p = s Score = 2

Calculate_if _p = t Score = 3

$End

// Направление перемещения мишени

$Function Val : integer

$Type = algorithmic

$Parameters

p : such_as Игровая_Ситуация.У_Мишени

l : such_as Игровая_Ситуация.D

$Body

Calculate_if p > 200 Val = -1

Calculate_if p < 0 Val = 1

Calculate_if p > -1 and p < 201 Val = l

$End

// Представление мощности ветра в наглядном виде

$Function iWind : integer

$Type = algorithmic

$Parameters

p : such_as Игровая_Ситуация.W

$Body

iWind = Round(p * 100)

$End

Последовательность

Случайная величина с распределением по равномерному закону

$Sequence Wind : real

$Type = uniform 1131113

$End

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5285
Авторов
на СтудИзбе
418
Средний доход
с одного платного файла
Обучение Подробнее