Лабораторные работы (2011) (РДО отчет)

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

Московский Энергетический Институт (Технический Университет)









Отчет по лабораторной работе №3

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











Группа: А-16-08

Студент: Грачева О. В.

Преподаватели: Еремеев А.П.

Гречкина П.В.









Москва 2011

Оглавление

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

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

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

Приложение 9

Заключение 15







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


Реализовать в системе имитационного моделирования РДО следующую ситуацию:

Есть озеро, в котором находится рыбка и разбросаны монетки. Игроку необходимо, управляя рыбкой с помощью клавиатуры, собрать все монетки.



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

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

Имеется озеро, в котором разбросаны 10 монеток. Управлять рыбкой можно с помощью клавиш «вправо», «влево», «вверх» и «вниз». Считается, что рыбка собрала монетку, когда наплыла на нее так, что закрыла картинку монетки полностью. На дне озера расположен сундук, он является для рыбки препятствием, которое она должна оплывать. Также рыбка не может выплывать за пределы озера и за пределы окна программы.


Вид программы



В конце игры пользователю предлагается сыграть еще раз. Ведется статистика: количество сыгранных игр.







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

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



В модели «Fish» используется 3 типа ресурсов:


  • ТИгра - Постоянный ресурс, отражающий общее состояние игры

  • ТРыбка - Постоянный ресурс, отражающий состояние рыбки

  • Тмонетка - Постоянный ресурс, отражающий состояние монетки



{*************************************************************}

{ Файл объекта типов ресурсов }

{ для модели игры "Fish" }

{ Грачева О. В., 2011}

{*************************************************************}


$Resource_type ТИгра : permanent

$Parameters

Состояние : (подготовка, игра, ожидание, победа, конец) = подготовка

//подготовка - установка начальных параметров

//игра - процесс игры

//пауза - ожидание хода игрока

//победа - рыбка собрала все монетки

//конец - отказ пользователя от повторной игры

Стадия_ожидания : integer[1..400] = 1

Оставшиеся_монетки : integer[0..10] = 10

Игр_сыграно : integer = 0

Время: real = 0

Последнее_время: real = 0

//Рекорд : real = 100

$End


$Resource_type ТРыбка : permanent

$Parameters

// Текущие координаты рыбки

x : integer[0..900]

y : integer[210..500]

Направление : (влево, вправо) = вправо

$End


$Resource_type ТМонетка : permanent

$Parameters

// Координаты монетки

x : integer[70..900]

y : integer[250..440]

Состояние : (есть, нет) = есть

$End





Ресурсы


В модели имеется 12 ресурсов:


  • Игра – ресурс типа ТИгра

  • Рыбка – ресурс типа ТРыбка

  • Монетка1 .. Монетка10 – ресурсы типа Тмонетка



{*************************************************************}

{ Файл объекта описания ресурсов }

{ для модели игры "Fish" }

{ Грачева О. В., 2011}

{*************************************************************}

$Resources

Игра : ТИгра * * * * * *

Рыбка : ТРыбка 0 400 *

Монетка1 : ТМонетка 70 250 *

Монетка2 : ТМонетка 90 300 *

Монетка3 : ТМонетка 170 350 *

Монетка4 : ТМонетка 600 270 *

Монетка5 : ТМонетка 350 430 *

Монетка6 : ТМонетка 870 290 *

Монетка7 : ТМонетка 500 420 *

Монетка8 : ТМонетка 260 280 *

Монетка9 : ТМонетка 700 360 *

Монетка10 : ТМонетка 900 440 *

$End







Операции


В модели имеется 9 образцов операций и 10 операций:


  • Образец_Начальные_Установки - Продукционное правило; задает начальные установки перед началом каждой игры


  • Образец_Сыграть_Еще - Клавиатурная операция; определяет выбор пользователя, сыграть ли еще раз


  • Образец_Собрать_Монетку - Продукционное правило, изменяет состояние монетки (на «нет»)


  • Образец_Победа - Продукционное правило, заканчивающее игру, изменяет число сыгранных игр


  • Образец_Рыбка_Шаг_Вправо - Клавиатурная операция, перемещает рыбку вправо, прибавляя к координате х число 5


  • Образец_Рыбка_Шаг_Влево - Клавиатурная операция, перемещает рыбку влево, отнимая от координаты х число 5


  • Образец_Рыбка_Шаг_Вверх - Клавиатурная операция, перемещает рыбку вверх, отнимая от координаты у число 5


  • Образец_Рыбка_Шаг_Вниз - Клавиатурная операция, перемещает рыбку вниз, прибавляя к координате у число 5


  • Образец_Ожидание - Продукционное правило, выполняется во время ожидания действия игрока





{*************************************************************}

{ Файл объекта описания операций }

{ для модели игры "Fish" }

{ Грачева О. В., 2011}

{*************************************************************}


$Operations

Начальные_установки : Образец_Начальные_Установки

Сыграть_еще1 : Образец_Сыграть_Еще 'Y' 1

Сыграть_еще2 : Образец_Сыграть_Еще 'N' 2

Собрать_монетку : Образец_Собрать_Монетку

Победа : Образец_Победа

Рыбка_вправо : Образец_Рыбка_Шаг_Вправо 'RIGHT'

Рыбка_влаво : Образец_Рыбка_Шаг_Влево 'LEFT'

Рыбка_вверх : Образец_Рыбка_Шаг_Вверх 'UP'

Рыбка_вниз : Образец_Рыбка_Шаг_Вниз 'DOWN'


Пауза : Образец_Ожидание

$End




Интерфейс



В модели используется 1 кадр анимации, который содержит:


  1. Фоновое изображение: игровое поле


  1. Элементы:


  • Статистика (сколько осталось монеток; сколько игр сыграно; время, прошедшее с начала игры)


  • Монетки (10 штук)


  • Рыбка


  • Поле с сообщением о победе, выводом времени игры и предложением сыграть еще раз (отображается после завершения игры)





Начальное состояние: