отчет по лабораторной 3
.pdf$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