swarm-0.4: data/scenarios/Testing/508-capability-subset.yaml
version: 1
name: Install one device
description: |
Install least amount of devices that provide needed capabilities
https://github.com/swarm-game/swarm/issues/508
objectives:
- condition: |
try {
r <- robotNumbered 1;
p <- as r {whereami};
g <- as base {count "GPS"};
t <- as base {count "Tardis"};
return (p == (5,0) && g == 1 && t == 0);
} { return false }
solution: |
log "Hi, I can build teleporting robots!";
try {
build {log "Hi, I can teleport!"; teleport self (5,0); p <- whereami; log $ "I am at " ++ format p}
} {
fail "Fatal error: BASE: I could not build my robot! What happened?!"
}
robots:
- name: base
loc: [0,0]
dir: [1,0]
devices:
- logger
- net
- 3D printer
inventory:
- [1, mirror]
- [1, string]
- [1, GPS]
- [1, Tardis]
- [1, logger]
- [1, solar panel]
- [1, ADT calculator]
known: [water]
world:
dsl: |
{ice, water}
palette:
'.': [grass, erase]
' ': [ice, water]
'┌': [stone, upper left corner]
'┐': [stone, upper right corner]
'└': [stone, lower left corner]
'┘': [stone, lower right corner]
'─': [stone, horizontal wall]
'│': [stone, vertical wall]
upperleft: [-1, 1]
map: |
┌─┐ ┌─┐
│.│ │.│
└─┘ └─┘
entities:
- name: GPS
display:
attr: water
char: 'G'
description:
- A satellite navigation device.
properties: [known, portable]
capabilities: [senseloc]
- name: Tardis
display:
attr: water
char: '█'
description:
- Bigger on the inside.
properties: [known, portable]
capabilities: [senseloc, teleport]