Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
8
Добавлен:
31.03.2015
Размер:
777.57 Кб
Скачать

$Pattern Down : keyboard $Relevant_resources BrickOld : Плитка Keep Keep BrickNew : Плитка Keep Keep Герой1 : _Герой Keep Keep Br1 : Плитка Keep Keep Игра1 : _Игра Keep Keep $Time = 0.0

$Body BrickOld

Choice from BrickOld.X=Герой1.X and BrickOld.Y=Герой1.Y and _Игра.Stat=1

Convert_begin Handle set 0

Состояние set BrickOld.Состояние - 1 BrickNew

Choice from

BrickNew.X=Герой1.X and BrickNew.Y=Герой1.Y + 50 and _Игра.Stat=1

Convert_begin

Герой1 Choice from

Герой1.Y < 550 and Герой1.Жив = 1 and _Игра.Stat=1 Convert_begin

Y set Герой1.Y + 50

Жив set Живой(BrickNew.Состояние)

Собрано set Герой1.Собрано + Взять(BrickNew.Handle)

Br1

Choice from

Br1.X=Герой1.X and Br1.Y=Герой1.Y + 50 and _Игра.Stat=1 Convert_begin

Handle set 2

Игра1

Choice NoCheck

Convert_begin

Stat set Win(_Герой.Собрано)

$End

$Pattern Победить : operation $Relevant_resources

Игра1 : _Игра Keep Keep $Time = 1.0

$Body

Игра1 Choice from

_Герой.Собрано = 5 and _Игра.Stat=1 Convert_begin

Stat set 2

$End

10

Кадры анимации

$Frame Frame

 

$Back_picture = <200 200 200> 800 600

 

Show

 

rect [0,0,500,600,<255 255 255>,<255 255 255>]

 

text [510,80, 200, 50, transparent, <0 0 0>,

'СОБИРАЙТЕ

МОНЕТКИ!']

text [650,150, 20, 50, transparent, <0 0 0>, _Герой.Собрано]

text [510,150, 130, 50, transparent, <0 0 0>,

'Монет собрано :']

bitmap [_Герой.X, _Герой.Y, man]

 

 

 

 

Show_if _Игра.Stat = 0 or _Игра.Stat = 3

 

 

 

 

text [510,200, 250, 30, transparent, <0

0

0>,

'Треснувшие

блоки разрушаются,']

 

 

 

 

text [540,230, 250, 30, transparent, <0

0

0>,

'если

с них

уйти']

 

 

 

 

text [510,270, 250, 50, transparent, <0

0

0>,

'Нажимайте

кнопки со стрелками,']

 

 

 

 

text [540,300, 250, 50, transparent,

<0

0

0>,

'чтобы

перемещаться']

 

 

 

 

Show_if _Игра.Stat = 0 or _Игра.Stat=3

 

 

 

 

text[250, 20, 300, 20, <255 255 255>, <125

125 125>, 'Нажмите

пробел для начала игры.']

 

 

 

 

active НачатьИгру [250,20,300,40]

 

 

 

 

Show_if _Игра.Stat = 3

text [600,50, 200, 50, transparent, <0 0 0>, 'ВЫ ПРОИГРАЛИ!'] Show_if _Игра.Stat = 2

text [600,200, 200, 50, transparent, <0 0 0>, 'WE ARE THE CHAMPIONS!']

//перебор по плиткам с игроком

Show_if Плитка0.Handle=2 and Плитка0.Состояние=2 bitmap [Плитка0.X, Плитка0.Y, goodwith]

Show_if Плитка0.Handle=2 and Плитка0.Состояние=1 bitmap [Плитка0.X, Плитка0.Y, badwith]

Show_if Плитка1.Handle=2 and Плитка1.Состояние=2 bitmap [Плитка1.X, Плитка1.Y, goodwith]

Show_if Плитка1.Handle=2 and Плитка1.Состояние=1 bitmap [Плитка1.X, Плитка1.Y, badwith]

Show_if Плитка2.Handle=2 and Плитка2.Состояние=2 bitmap [Плитка2.X, Плитка2.Y, goodwith]

Show_if Плитка2.Handle=2 and Плитка2.Состояние=1 bitmap [Плитка2.X, Плитка2.Y, badwith]

11

Show_if Плитка3.Handle=2 and Плитка3.Состояние=2 bitmap [Плитка3.X, Плитка3.Y, goodwith]

Show_if Плитка3.Handle=2 and Плитка3.Состояние=1 bitmap [Плитка3.X, Плитка3.Y, badwith]

Show_if Плитка4.Handle=2 and Плитка4.Состояние=2 bitmap [Плитка4.X, Плитка4.Y, goodwith]

Show_if Плитка4.Handle=2 and Плитка4.Состояние=1 bitmap [Плитка4.X, Плитка4.Y, badwith]

Show_if Плитка5.Handle=2 and Плитка5.Состояние=2 bitmap [Плитка5.X, Плитка5.Y, goodwith]

Show_if Плитка5.Handle=2 and Плитка5.Состояние=1 bitmap [Плитка5.X, Плитка5.Y, badwith]

Show_if Плитка6.Handle=2 and Плитка6.Состояние=2 bitmap [Плитка6.X, Плитка6.Y, goodwith]

Show_if Плитка6.Handle=2 and Плитка6.Состояние=1 bitmap [Плитка6.X, Плитка6.Y, badwith]

Show_if Плитка7.Handle=2 and Плитка7.Состояние=2 bitmap [Плитка7.X, Плитка7.Y, goodwith]

Show_if Плитка7.Handle=2 and Плитка5.Состояние=1 bitmap [Плитка7.X, Плитка7.Y, badwith]

Show_if Плитка8.Handle=2 and Плитка8.Состояние=2 bitmap [Плитка8.X, Плитка8.Y, goodwith]

Show_if Плитка8.Handle=2 and Плитка8.Состояние=1 bitmap [Плитка8.X, Плитка8.Y, badwith]

Show_if Плитка9.Handle=2 and Плитка9.Состояние=2 bitmap [Плитка9.X, Плитка9.Y, goodwith]

Show_if Плитка9.Handle=2 and Плитка9.Состояние=1 bitmap [Плитка9.X, Плитка9.Y, badwith]

//перебор по плиткам без игроков

Show_if Плитка0.Handle=0 and Плитка0.Состояние=2 bitmap [Плитка0.X, Плитка0.Y, good]

Show_if Плитка0.Handle=0 and Плитка0.Состояние=1 bitmap [Плитка0.X, Плитка0.Y, bad]

Show_if Плитка1.Handle=0 and Плитка1.Состояние=2 bitmap [Плитка1.X, Плитка1.Y, good]

Show_if Плитка1.Handle=0 and Плитка1.Состояние=1 bitmap [Плитка1.X, Плитка1.Y, bad]

Show_if Плитка2.Handle=0 and Плитка2.Состояние=2 bitmap [Плитка2.X, Плитка2.Y, good]

Show_if Плитка2.Handle=0 and Плитка2.Состояние=1

12

bitmap [Плитка2.X, Плитка2.Y, bad]

Show_if Плитка3.Handle=0 and Плитка3.Состояние=2 bitmap [Плитка3.X, Плитка3.Y, good]

Show_if Плитка3.Handle=0 and Плитка3.Состояние=1 bitmap [Плитка3.X, Плитка3.Y, bad]

Show_if Плитка4.Handle=0 and Плитка4.Состояние=2 bitmap [Плитка4.X, Плитка4.Y, good]

Show_if Плитка4.Handle=0 and Плитка4.Состояние=1 bitmap [Плитка4.X, Плитка4.Y, bad]

Show_if Плитка5.Handle=0 and Плитка5.Состояние=2 bitmap [Плитка5.X, Плитка5.Y, good]

Show_if Плитка5.Handle=0 and Плитка5.Состояние=1 bitmap [Плитка5.X, Плитка5.Y, bad]

Show_if Плитка6.Handle=0 and Плитка6.Состояние=2 bitmap [Плитка6.X, Плитка6.Y, good]

Show_if Плитка6.Handle=0 and Плитка6.Состояние=1 bitmap [Плитка6.X, Плитка6.Y, bad]

Show_if Плитка7.Handle=0 and Плитка7.Состояние=2 bitmap [Плитка7.X, Плитка7.Y, good]

Show_if Плитка7.Handle=0 and Плитка7.Состояние=1 bitmap [Плитка7.X, Плитка7.Y, bad]

Show_if Плитка8.Handle=0 and Плитка8.Состояние=2 bitmap [Плитка8.X, Плитка8.Y, good]

Show_if Плитка8.Handle=0 and Плитка8.Состояние=1 bitmap [Плитка8.X, Плитка8.Y, bad]

Show_if Плитка9.Handle=0 and Плитка9.Состояние=2 bitmap [Плитка9.X, Плитка9.Y, good]

Show_if Плитка9.Handle=0 and Плитка9.Состояние=1 bitmap [Плитка9.X, Плитка9.Y, bad]

//перебор по плиткам с монетами

Show_if Плитка0.Handle=1 and Плитка0.Состояние=2 bitmap [Плитка0.X, Плитка0.Y, goodcoin]

Show_if Плитка0.Handle=1 and Плитка0.Состояние=1 bitmap [Плитка0.X, Плитка0.Y, badcoin]

Show_if Плитка1.Handle=1 and Плитка1.Состояние=2 bitmap [Плитка1.X, Плитка1.Y, goodcoin]

Show_if Плитка1.Handle=1 and Плитка1.Состояние=1 bitmap [Плитка1.X, Плитка1.Y, badcoin]

Show_if Плитка2.Handle=1 and Плитка2.Состояние=2 bitmap [Плитка2.X, Плитка2.Y, goodcoin]

13

Show_if Плитка2.Handle=1 and Плитка2.Состояние=1 bitmap [Плитка2.X, Плитка2.Y, badcoin]

Show_if Плитка3.Handle=1 and Плитка3.Состояние=2 bitmap [Плитка3.X, Плитка3.Y, goodcoin]

Show_if Плитка3.Handle=1 and Плитка3.Состояние=1 bitmap [Плитка3.X, Плитка3.Y, badcoin]

Show_if Плитка4.Handle=1 and Плитка4.Состояние=2 bitmap [Плитка4.X, Плитка4.Y, goodcoin]

Show_if Плитка4.Handle=1 and Плитка4.Состояние=1 bitmap [Плитка4.X, Плитка4.Y, badcoin]

Show_if Плитка5.Handle=1 and Плитка5.Состояние=2 bitmap [Плитка5.X, Плитка5.Y, goodcoin]

Show_if Плитка5.Handle=1 and Плитка5.Состояние=1 bitmap [Плитка5.X, Плитка5.Y, badcoin]

Show_if Плитка6.Handle=1 and Плитка6.Состояние=2 bitmap [Плитка6.X, Плитка6.Y, goodcoin]

Show_if Плитка6.Handle=1 and Плитка6.Состояние=1 bitmap [Плитка6.X, Плитка6.Y, badcoin]

Show_if Плитка7.Handle=1 and Плитка7.Состояние=2 bitmap [Плитка7.X, Плитка7.Y, goodcoin]

Show_if Плитка7.Handle=1 and Плитка7.Состояние=1 bitmap [Плитка7.X, Плитка7.Y, badcoin]

Show_if Плитка8.Handle=1 and Плитка8.Состояние=2 bitmap [Плитка8.X, Плитка8.Y, goodcoin]

Show_if Плитка8.Handle=1 and Плитка8.Состояние=1 bitmap [Плитка8.X, Плитка8.Y, badcoin]

Show_if Плитка9.Handle=1 and Плитка9.Состояние=2 bitmap [Плитка9.X, Плитка9.Y, goodcoin]

Show_if Плитка9.Handle=1 and Плитка9.Состояние=1 bitmap [Плитка9.X, Плитка9.Y, badcoin]

$End

Функции и последовательности

$Function Живой : integer $Type = algorithmic $parameters

n : integer $Body

Calculate_if _Игра.Stat = 1 and n=0 Живой = 0

14

Calculate_if _Игра.Stat = 1 and n<>0 Живой = 1 $End

$Function Взять : integer $Type = algorithmic $parameters

n : integer $Body

Calculate_if _Игра.Stat = 1 and n=1 Взять =1 Calculate_if _Игра.Stat = 1 and n<>1 Взять = 0

$End

$Function Win : integer=1 $Type = algorithmic $parameters

n : integer $Body

Calculate_if _Игра.Stat = 1 and _Герой.Жив = 1 and n=5 Win = 2 Calculate_if _Игра.Stat = 1 and _Герой.Жив = 0 Win = 3 Calculate_if _Игра.Stat = 1 and n<>5 and _Герой.Жив = 1 Win = 1

$End

Заключение

С помощью системы имитационного моделирования РДО в среде RAO Studio была реализована модель перемещения искателя приключений. При моделировании собиралась статистика (число собранных монет), а также были задействованы клавиатурные операции для интерактивного управления искателем приключений.

15