swarm-0.6.0.0: data/scenarios/Challenges/friend.yaml
version: 1
name: Make a Friend
author: Brent Yorgey
description: |
Win the trust of a furry companion.
creative: false
robots:
- name: base
display:
char: 'Ω'
attr: robot
heavy: true
dir: north
devices:
- 3D printer
- ADT calculator
- antenna
- branch predictor
- clock
- comparator
- counter
- dictionary
- grabber
- hearing aid
- lambda
- logger
- mirror
- net
- scanner
- strange loop
- string
- toolkit
- workbench
inventory:
- [10, ADT calculator]
- [10, antenna]
- [10, treads]
- [10, branch predictor]
- [10, fish]
- [10, solar panel]
- [10, grabber]
- [10, lambda]
- [10, strange loop]
- [10, logger]
- [10, clock]
- [10, comparator]
- [10, calculator]
- name: cat
system: true
dir: west
display:
invisible: false
char: 'c'
attr: sand
devices:
- logger
program: |
run "scenarios/Challenges/_friend/cat.sw"
objectives:
- goal:
- There's a cat wandering around in the field. Bring it back to your base. If you give it something it likes, perhaps you can get it to follow you.
condition: |
c <- robotNamed "cat";
catLoc <- as c {whereami};
baseLoc <- as base {whereami};
return (catLoc == baseLoc)
solution: |
run "scenarios/Challenges/_friend/friend-solution.sw"
entities:
- name: fish
display:
char: 'f'
description:
- A smelly fish. Rather unappetizing to a robot.
properties: [known, pickable]
known: [fish]
seed: 0
world:
offset: true
palette:
'Ω': [grass, null, base]
'.': [stone]
',': [grass]
'c': [grass, null, cat]
'*': [grass, flower]
'@': [stone, boulder]
upperleft: [-20, 2]
dsl: |
"classic"
map: |-
c,..,,,,,,..,,,,...,.
,..,,,,,,,...........
*,.,@,,,,,,,.....,..Ω