packages feed

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