swarm-0.4: data/scenarios/Testing/687-watch-command.yaml
version: 1
name: Watch command test
creative: true
description: Wake from wait upon entity placement
objectives:
- goal:
- grab a tree before the competitor steals it.
condition: |
as base {has "tree"}
prerequisite:
not: stolen
- id: stolen
goal:
- Competitor steals a tree
condition: |
competitor <- robotnamed "competitor";
as competitor {has "tree"}
solution: |
watch forward;
wait 80;
move;
grab;
robots:
- name: base
dir: [0,1]
display:
char: Ω
attr: robot
devices:
- logger
- string
- grabber
- treads
- name: competitor
dir: [0, -1]
display:
char: b
attr: robot
devices:
- logger
- string
- grabber
- treads
program: |
wait 70;
move;
grab;
turn back;
move;
- name: planter
dir: [1, 0]
display:
char: p
attr: robot
inventory:
- [10, tree]
devices:
- logger
- string
- grabber
- treads
program: |
def doN = \n. \f. if (n > 0) {f; doN (n - 1) f} {}; end;
doN 7 (move; wait 4; place "tree";);
known: []
world:
palette:
'Ω': [grass, null, base]
p : [grass, null, planter]
b : [grass, null, competitor]
'.': [grass]
'T': [grass, tree]
upperleft: [0, 0]
map: |
......b...
.p........
......Ω...