packages feed

swarm-0.4: data/scenarios/Testing/1024-sand.yaml

version: 1
name: Sand from drilling
description: |
  Sand is no longer infinite, but can be obtained by drilling rocks,
  which occasionally drop from drilling in mines.
  https://github.com/swarm-game/swarm/pull/1024
objectives:
  - condition: |
      as base {n <- count "sand"; return (n >= 32)}
    goal:
      - Obtain 32 sand.
solution: |
  def forever = \c. c ; forever c end
  def while = \t. \b.
    x <- t;
    if x {b; while t b} {}
  end
  def drill_for_sand =
    move;
    drill down;
    turn back; move; turn back;
    while (has "rock") (
      place "rock"; drill down
    )
  end;

  forever drill_for_sand
robots:
  - name: base
    dir: [1,0]
    devices:
      - dictionary
      - logger
      - branch predictor
      - harvester
      - drill
      - solar panel
      - treads
world:
  palette:
    '>': [grass, null, base]
    'Å': [stone, copper mine]
  upperleft: [0,0]
  map: |
    >Å