packages feed

swarm-0.7.0.0: data/scenarios/Testing/394-build-drill.yaml

version: 1
name: Test build with drill
description: |
  Inner build does not correctly require Drill.
  https://github.com/swarm-game/swarm/issues/394
creative: True
objectives:
  - condition: |
      try {
        as base {l <- has "detonator"; pure (not l)}
      } { pure false }
# When testing, add `s <- build {...}; n <- as s {whoami}; log n`
solution: |
  def forever = \c. c ; forever c end;
  def unblock = try {drill forward; pure ()} {} end;
  def doPush = unblock; move end;
  log "Hi, I am base";
  r <- build {
    wait 2;
    log "Hi, I am builder";
    forever (
      build {
        log "Hi, I am pusher";
        forever doPush
      };
      log "- robot built"
    )
  };
  wait 10;
  place "detonator";
robots:
  - name: base
    loc: [0, 0]
    dir: east
    devices:
      - treads
      - logger
      - 3D printer
      - dictionary
      - grabber
    inventory:
      - [1, detonator] # used to mark win
world:
  palette:
    '.': [grass]
    'M': [stone, mountain]
    '+': [stone, wall]
  upperleft: [-1, 1]
  map: |
    +++++
    +..M+
    +++++