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

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

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

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





Лабораторная работа №3 по курсу

«Теория игр и исследование операций»

по теме

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





Выполнила: студентка группы А-13-05

Егорова Н.А


Проверила: Гречкина П.В.





















6.05.2009г.

Оглавление

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

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

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

Типы ресурсов (файл с расширением .rtp) 3

Ресурсы (файл с расширением .rss) 4

Операции (файл с расширением .opr) 4

Интерфейс. 5

Файл выполнения (файл с расширением .smr) 7

Статистика. 8

Приложение. 8

Образцы операций (файл с расширением .pat) 8

Константы, функции, последовательности (файл с расширением .fun) 11

Кадры анимации (файл с расширением .frm) 11


































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


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

Есть несколько пар различных картинок. Они расположены случайным образом на поле. Пользователю необходимо за указанное количество времени найти эти пары на поле и убрать их.


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


Есть 8 пар картинок прямоугольников разного цвета. Они расположены на поле размером 4х4 в закрытом виде. Предусмотрено несколько вариантов расположения пар (задается в начале игры). Пользователь должен найти на поле все пары следующим образом: открыть одну ячейку, затем открыть вторую ячейку, если картинки на открытых ячейках совпадут, то данная открытая пара убирается с поля и счетчик пар, которые осталось открыть, уменьшается на 1. Если же картинки на двух открытых ячейках не совпадают, то

  • Если пользователь в течение 1 сек не открывает дальше ячейки, то две открытые ячейки закрываются

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

В начале игры можно задать время, за которое пользователь должен закончить игру, и уровень (одно из предложенных расположений рисунков) . Время и уровень задаются в файле .SMR.

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

Для начала игры также необходимо нажать Пробел или кликнуть мышкой по полю. Для выхода из игры надо нажать кнопку Escape, выйти из игры можно в любой момент. Управление производится мышью.



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


Типы ресурсов (файл с расширением .rtp)


В данном файле описаны 2 типа ресурсов – КлассИгра и КлассКлетка.


Тип ресурса КлассИгра содержит поля:

  • Время – время, уже затраченное на игру (начальное состояние 0)

  • Уровень - выриант расположения картинок на поле (от 0 до 2)

  • Состояние – состояние игры: 0-не начата, 1- в процессе, 2,3- победа/проигрыш, 4-выход

  • Колво – количество открытых пар (начальное состояние 0)

  • Обработка – необходимо для осуществления задержки (начальное состояние 0).

  • ОсталосьПар - количество неоткрытых пар (начальное состояние 8)


$Resource_type КлассИгра : permanent

$Parameters

Время : integer = 0

Уровень : integer[0..2] = 0

{0-не начата, 1- в процессе, 2,3- победа/проигрыш, 4-выход}

Состояние : integer[0..4] = 0

Колво : integer = 0

{Необходимо для задержки}

Обработка : integer = 0

ОсталосьПар : integer = 8

$End



Тип ресурса КлассЯчейка содержит поля:

  • Столбец – столбец, в котором находится ячейка (от 0 до 4)

  • Строка - строка, в котором находится ячейка (от 0 до 4)

  • Состояние – состояние ячейки: 0-закрыта, 1-открыта, 2-убрана (начальное состояние 0)

  • ТипРисунка - от 1 до 8


$Resource_type КлассКлетка : permanent

$Parameters

Столбец : integer [0..4]

Строка : integer [0..4]

{0-закрыта, 1-открыта, 2-убрана}

Состояние : integer [0..2] = 0

ТипРисунка : integer [1..8] = 1

$End



Ресурсы (файл с расширением .rss)


Используется 17 постоянных ресурсов: 16 ячеек и Игра.

* -Начальное состояние по умолчанию


$Resources

Игра : КлассИгра * * * * * *

Клетка11 : КлассКлетка 1 1 * *

Клетка12 : КлассКлетка 1 2 * *

Клетка43 : КлассКлетка 4 3 * *

Клетка44 : КлассКлетка 4 4 * *

$End



Операции (файл с расширением .opr)


Используется

  • одна регулярная операция (РегулярнаяОперация), которая изменяет время и регулирует закрытие ячеек.

  • 16 функций (ГлавнаяФункция – клавиатурная операция), которые регулируют открытие ячеек и увеличивают количество открытых ячеек

  • НачатьИгру – для начало игры

  • ОбработкаЗакрытие - для закрытия двух открытых ячеек

  • ОбработкаУборка - для уборки двух открытых ячеек

  • ОбработкаМаксимум2 – для отслеживания того, чтобы было открыто не более двух ячеек

  • Выгрыш - выигрыш

  • Проигрыш – проигрыш

  • Выход - выход


$Operations

РегулярнаяОперация : ОбразецРегулярнойОперации

ГлавнаяФункция11 : ОбразецГлавнаяФункция '0' 1 1

ГлавнаяФункция12 : ОбразецГлавнаяФункция '0' 1 2

ГлавнаяФункция44 : ОбразецГлавнаяФункция '0' 4 4

НачатьИгру : ОбразецЗаполнение 'SPACE'

ОбработкаЗакрытие: ОбразецЗакрытие

ОбработкаУборка : ОбразецУборка

ОбработкаМаксимум2: ОбразецМаксимум2

Выгрыш : ОбразецВыигрыш

Проигрыш : ОбразецПроигрыш

Выход : ОбразецВыход 'ESCAPE'

$End


Интерфейс.



Начало игры. До начала игры пользователю предоставляется возможность посмотреть расположение всех пар. Для начала игры необходимо нажать Пробел или кликнуть мышкой по полю. Данная ситуация соответствует состоянию игры – не начата (0).










Состояние игры – в процессе.










Ситуация выигрыша:



Ситуация проигрыша:




Файл выполнения (файл с расширением .smr)


// Ресурсы (*.rss)

Resource_file = mymodel


// Операции (*.opr)

// Одновременно в модели может присутствовать или файл *.opr или файл *.dpt, но не оба сразу

OprIev_file = mymodel


// Собираемые показатели (*.pmd)

Statistic_file = mymodel


// Результаты прогона (*.pmv), выводятся внизу экрана

Results_file = mymodel


// Трассировка (*.trc)

// Если файл трассировки закомментировать, то отключится вся трассировка в модели

Trace_file = mymodel


// Анимация (*.trc)

Frame_file = mymodel

// Отображение анимации начинается с кадра Frame_number

Frame_number = 1


// Режим прогона, включить анимацию

Show_mode = Animation

// Скорость анимации. Чем больше значение, тем быстрее прогон

Show_rate = 10000.0


// Начальные значения констант Время игры и Уровень

ВремяИгры = 150

Ур = 1


// Условие остановки модели.

Terminate_if Игра.Состояние = 4

Статистика.


В данной модели статистика не собиралась.


Приложение.


Образцы операций (файл с расширением .pat)


{Ведет счетчик увеличения времени и устанавливает флаг для обработки правил}

$Pattern ОбразецРегулярнойОперации : irregular_event

$Relevant_resources

_Игра : Игра Keep

$Time = 1.0

$Body

_Игра

Convert_event

Время set _Игра.Время + 1

Обработка set 1

$End


{Начальная инициализация игры, клеток, уровня}

$Pattern ОбразецЗаполнение : keyboard

$Relevant_resources

_Игра : Игра Keep Keep

_Клетка11 : Клетка11 Keep Keep

_Клетка12 : Клетка12 Keep Keep

_Клетка13 : Клетка13 Keep Keep

_Клетка14 : Клетка14 Keep Keep

_Клетка21 : Клетка21 Keep Keep

_Клетка22 : Клетка22 Keep Keep

_Клетка23 : Клетка23 Keep Keep

_Клетка24 : Клетка24 Keep Keep

_Клетка31 : Клетка31 Keep Keep

_Клетка32 : Клетка32 Keep Keep

_Клетка33 : Клетка33 Keep Keep

_Клетка34 : Клетка34 Keep Keep

_Клетка41 : Клетка41 Keep Keep

_Клетка42 : Клетка42 Keep Keep

_Клетка43 : Клетка43 Keep Keep

_Клетка44 : Клетка44 Keep Keep

$Time = 0.0

$Body

_Игра Choice from _Игра.Состояние <> 1

Convert_begin Время set 0

ОсталосьПар set 8

Колво set 0

Состояние set 1

Обработка set 0

Уровень set Ур

_Клетка11 Choice NoCheck Convert_begin ТипРисунка set ТаблицаУровней( 1, 1, Игра.Уровень) Состояние set 0

_Клетка12 Choice NoCheck Convert_begin ТипРисунка set ТаблицаУровней( 1, 2, Игра.Уровень) Состояние set 0

set 0

_Клетка44 Choice NoCheck Convert_begin ТипРисунка set ТаблицаУровней( 4, 4, Игра.Уровень) Состояние set 0

$End


{Открытие ячеек, увеличение количества открытых ячеек}

$Pattern ОбразецГлавнаяФункция : keyboard

$Parameters

Столбец : integer

Строка : integer

$Relevant_resources

_Клетка1 : КлассКлетка Keep Keep

_Игра : Игра Keep Keep

$Time = 0.0

$Body

_Клетка1 Choice from _Клетка1.Столбец = Столбец and

_Клетка1.Строка = Строка and

_Клетка1.Состояние = 0

Convert_begin

Состояние set 1


_Игра Choice NoCheck

Convert_begin

Колво set _Игра.Колво + 1

Обработка set 0

$End


{Вызыветя при нажатии esc и игре присваевается состояние 4}

$Pattern ОбразецВыход : keyboard

$Relevant_resources

_Игра : Игра Keep Keep

$Time = 0.0

$Body

_Игра Choice NoCheck

Convert_begin

Состояние set 4

$End


{Правило для закрытия двух открытых ячеек, вызывается только когда обработка = 1}


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

Файл
125978.rtf
97785.doc
rekstrat.doc
12507.rtf
72332-1.rtf




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