packages feed

swarm-0.4: data/scenarios/Challenges/gopher.yaml

version: 1
name: Gopher
author: Karl Ostmo
description: |
  Dispatch a pesky gopher
creative: false
seed: 0
objectives:
  - id: defeat_gopher
    teaser: Defeat gopher
    goal:
      - |
        A gopher (G) is defiling your immaculate garden!
      - |
        He will burrow (o) underground awhile, then pop up
        anywhere within the rectangular grassy region
        to gloat atop his "mound" of dirt for a short time.
        `drill` the "mound" while he sits to drive him
        away. Eventually you should wear down his resolve!
    condition: |
      try {
        robotnamed "gopher";
        return false;
      } {
        return true;
      }
  - teaser: Recover equipment
    prerequisite: defeat_gopher
    hidden: true
    optional: true
    goal:
      - |
        Salvage any deployed robots to get your scanners back.
    condition: |
      as base {
        sCount <- count "scanner";
        return $ sCount >= 120;
      }
robots:
  - name: base
    loc: [-1, 1]
    display:
      attr: blue
    dir: [1, 0]
    devices:
      - ADT calculator
      - 3D printer
      - branch predictor
      - treads
      - clock
      - comparator
      - workbench
      - grabber
      - dictionary
      - lambda
      - logger
      - welder
      - hearing aid
      - scanner
      - strange loop
      - drill
    inventory:
      - [120, solar panel]
      - [120, strange loop]
      - [120, scanner]
      - [120, logger]
      - [120, lambda]
      - [120, dictionary]
      - [120, grabber]
      - [120, clock]
      - [120, comparator]
      - [120, ADT calculator]
      - [120, swivel]
      - [120, branch predictor]
      - [120, drill]
      - [120, rolex]
      - [120, flower]
  - name: gopher
    system: true
    dir: [0, 1]
    display:
      char: 'G'
      invisible: false
      attr: 'wood'
    inventory:
      - [50, mound]
      - [1, toolkit]
      - [1, serenity]
    program: |
      run "data/scenarios/Challenges/_gopher/gopher.sw"
entities:
  - name: mound
    display:
      char: 'M'
      attr: wood
    description:
      - An unsightly pile of dirt
    properties: [known]
  - name: serenity
    display:
      char: 's'
      attr: silver
    description:
      - Peace of mind after having driven away the gopher.
    properties: [known]
  - name: swivel
    display:
      char: 's'
      attr: gold
    capabilities: [turn]
    description:
      - Allows a robot to "turn" but not "move".
    properties: [known, portable]
  - name: uranium
    display:
      char: 'U'
      attr: silver
    description:
      - Unearthed by industrious gophers.
    properties: [known, portable]
recipes:
  - in:
      - [1, mound]
    out:
      - [1, uranium]
    required:
      - [1, drill]
solution: |
   run "scenarios/Challenges/_gopher/solution.sw"
known: []
world:
  upperleft: [-1, 1]
  offset: false
  palette:
    'x': [dirt]
    '.': [grass]
    'g': [dirt, null, gopher]
  map: |
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    x............................x
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxg