>xabsl 2
Behavior Documentation
>
Index
>Agents
>Symbols
>Basic Behaviors
>Options
>> play-soccer
>>>
initial-ready-and-set
>>>
playing
>>>
penalized
>>>
finished
Option play-soccer
Selects gamestate according to game manager messages and buttons.
State Machine
This browser can't display the SVG file
svg/option_play-soccer.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
State initial-ready-and-set
If that state is active,
>
The option
initial-ready-and-set
is executed.
>
These output symbols are set:
profiler-collect-mode
=
profiler-collect-mode.dont-collect-profiles
profiler-write-mode
=
profiler-write-mode.dont-write-profiles
The decision tree:
This browser can't display the SVG file
svg/option_play-soccer_state_initial-ready-and-set.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
Pseudo code of the decision tree:
if
(
(
(
game.state
==
game.state.ready
)
||
(
game.state
==
game.state.set
)
||
(
game.state
==
game.state.initial
)
)
&&
(
game.time-since-last-message
< 500
)
)
// initial, ready, or set message received
{
transition-to-state(
initial-ready-and-set
);
}
else if
(
(
game.state
==
game.state.penalized
)
&&
(
game.time-since-last-message
< 500
)
)
// penalized message received
{
transition-to-state(
penalized
);
}
else if
(
(
game.state
==
game.state.finished
)
&&
(
game.time-since-last-message
< 500
)
)
// finished message received
{
transition-to-state(
finished
);
}
else
{
if
(
subsequent-option-reached-target-state
)
// game started (reached target state)
{
transition-to-state(
playing
);
}
else
{
transition-to-state(
initial-ready-and-set
);
}
}
State playing
If that state is active,
>
The option
playing
is executed.
>
These output symbols are set:
sent-game-state
=
sent-game-state.playing
profiler-collect-mode
=
profiler-collect-mode.dont-collect-profiles
profiler-write-mode
=
profiler-write-mode.dont-write-profiles
The decision tree:
This browser can't display the SVG file
svg/option_play-soccer_state_playing.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
Pseudo code of the decision tree:
if
(
(
(
game.state
==
game.state.ready
)
||
(
game.state
==
game.state.set
)
||
(
game.state
==
game.state.initial
)
)
&&
(
game.time-since-last-message
< 500
)
)
// initial, ready, or set message received
{
transition-to-state(
initial-ready-and-set
);
}
else if
(
(
game.state
==
game.state.penalized
)
&&
(
game.time-since-last-message
< 500
)
)
// penalized message received
{
transition-to-state(
penalized
);
}
else if
(
(
game.state
==
game.state.finished
)
&&
(
game.time-since-last-message
< 500
)
)
// finished message received
{
transition-to-state(
finished
);
}
else
{
if
(
robot-state.any-back-button-pressed-for-one-second
)
// one of the back switches pressed for more than one second
{
transition-to-state(
penalized
);
}
else
{
transition-to-state(
playing
);
}
}
State penalized
If that state is active,
>
The basic behavior
stand
is executed.
>
These output symbols are set:
head-control-mode
=
head-control-mode.look-between-feet
sent-game-state
=
sent-game-state.penalized
leds.back-middle-white
=
back-middle-white.lloo
profiler-collect-mode
=
profiler-collect-mode.dont-collect-profiles
profiler-write-mode
=
profiler-write-mode.dont-write-profiles
The decision tree:
This browser can't display the SVG file
svg/option_play-soccer_state_penalized.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
Pseudo code of the decision tree:
if
(
(
(
game.state
==
game.state.ready
)
||
(
game.state
==
game.state.set
)
||
(
game.state
==
game.state.initial
)
)
&&
(
game.time-since-last-message
< 500
)
)
// initial, ready, or set message received
{
transition-to-state(
initial-ready-and-set
);
}
else if
(
(
game.state
==
game.state.penalized
)
&&
(
game.time-since-last-message
< 500
)
)
// penalized message received
{
transition-to-state(
penalized
);
}
else if
(
(
game.state
==
game.state.finished
)
&&
(
game.time-since-last-message
< 500
)
)
// finished message received
{
transition-to-state(
finished
);
}
else
{
if
(
robot-state.head-button-pressed-for-three-seconds
)
// head pressed for 3 seconds
{
transition-to-state(
initial-ready-and-set
);
}
else if
(
robot-state.head-button-pressed-short-and-released
)
// head pressed short
{
transition-to-state(
playing
);
}
else if
(
(
game.state
==
game.state.playing
)
&&
(
game.time-since-last-message
< 500
)
)
// playing message received
{
transition-to-state(
playing
);
}
else
{
transition-to-state(
penalized
);
}
}
State finished
If that state is active,
>
The option
finished
is executed.
>
These output symbols are set:
profiler-collect-mode
=
profiler-collect-mode.dont-collect-profiles
profiler-write-mode
=
profiler-write-mode.dont-write-profiles
The decision tree:
This browser can't display the SVG file
svg/option_play-soccer_state_finished.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
Pseudo code of the decision tree:
if
(
(
(
game.state
==
game.state.ready
)
||
(
game.state
==
game.state.set
)
||
(
game.state
==
game.state.initial
)
)
&&
(
game.time-since-last-message
< 500
)
)
// initial, ready, or set message received
{
transition-to-state(
initial-ready-and-set
);
}
else if
(
(
game.state
==
game.state.penalized
)
&&
(
game.time-since-last-message
< 500
)
)
// penalized message received
{
transition-to-state(
penalized
);
}
else if
(
(
game.state
==
game.state.finished
)
&&
(
game.time-since-last-message
< 500
)
)
// finished message received
{
transition-to-state(
finished
);
}
else
{
if
(
(
game.state
==
game.state.playing
)
&&
(
game.time-since-last-message
< 500
)
)
// playing message received
{
transition-to-state(
playing
);
}
else
{
transition-to-state(
finished
);
}
}