swarm-0.5.0.0: data/scenarios/Challenges/Ranching/powerset.yaml
version: 1
name: Fruit hybrids
author: Karl Ostmo
description: |
Find the missing fruit combination
creative: false
attrs:
- name: fruit0
fg: "#ff0080"
- name: fruit1
fg: "#b000ff"
- name: fruit2
fg: "#ffff00"
- name: fruit3
fg: "#ff0000"
- name: fruit4
fg: "#0000ff"
- name: fruit5
fg: "#00ff00"
- name: fruit6
fg: "#ff8000"
objectives:
- teaser: Find missing hybrid
id: complete_powerset
goal:
- |
Farmer Bill is breeding hybrid fruits.
Each fruit can be paired with one or more other fruit variety, and Bill
wants to evaluate every such combination.
He has arranged each hybrid in a column in his orchard.
- |
However, his experiment is incomplete! He has forgotten one combination.
- |
Place the missing hybrid combination in the empty eastern-most column.
After you have done this, `place` the `bell`{=entity} anywhere, and then Bill will inspect
your work.
prerequisite:
not: wrong_anwser
condition: |
r <- robotnamed "setup";
as r {has "bit (1)"};
- teaser: Wrong answer
id: wrong_anwser
optional: true
goal:
- |
Farmer Bill is disappointed.
condition: |
r <- robotnamed "setup";
as r {has "bit (0)"};
robots:
- name: base
dir: [1, 0]
devices:
- ADT calculator
- branch predictor
- hourglass
- comparator
- compass
- counter
- dictionary
- Elmer's glue
- fruit picker
- fruit planter
- GPS receiver
- lambda
- linotype
- lodestone
- logger
- keyboard
- net
- rocket skates
- scanner
- strange loop
- treads
- name: setup
system: true
dir: [1, 0]
display:
invisible: true
inventory:
- [1, bell]
- [1, dragonfruit]
- [2, grape]
- [3, lemon]
- [4, apple]
- [5, blueberry]
- [6, watermelon]
- [7, orange]
program: |
run "scenarios/Challenges/Ranching/_powerset/setup.sw"
solution: |
run "scenarios/Challenges/Ranching/_powerset/solution.sw"
entities:
- name: rocket skates
display:
attr: silver
char: 's'
description:
- Allows one to `stride` across multiple cells
properties: [known, portable]
capabilities: [movemultiple]
- name: bell
display:
char: 'B'
attr: gold
description:
- A bell for Bill
properties: [known, portable]
- name: fruit picker
display:
char: 'P'
description:
- Enables the `harvest` command.
properties: [known]
capabilities: [harvest]
- name: fruit planter
display:
char: 'p'
description:
- Enables the `place` command.
properties: [known]
capabilities: [place]
- name: dragonfruit
display:
char: 'Y'
attr: fruit0
description:
- Dragonfruits
properties: [known, growable, portable]
growth: [10, 10]
- name: grape
display:
char: 'Y'
attr: fruit1
description:
- Grapes
growth: [10, 10]
properties: [known, growable, portable]
- name: lemon
display:
char: 'Y'
attr: fruit2
description:
- Lemons
growth: [10, 10]
properties: [known, growable, portable]
- name: apple
display:
char: 'Y'
attr: fruit3
description:
- Apple
growth: [10, 10]
properties: [known, growable, portable]
- name: blueberry
display:
char: 'Y'
attr: fruit4
description:
- Blueberries
growth: [10, 10]
properties: [known, growable, portable]
- name: watermelon
display:
char: 'Y'
attr: fruit5
description:
- Watermelons
growth: [10, 10]
properties: [known, growable, portable]
- name: orange
display:
char: 'Y'
attr: fruit6
description:
- Oranges
growth: [10, 10]
properties: [known, growable, portable]
known: [sand]
world:
dsl: |
{grass}
upperleft: [-1, -1]
offset: false
palette:
'.': [grass]
'B': [grass, null, base]
'S': [grass, null, setup]
map: |
BS