packages feed

swarm-0.4: data/scenarios/Testing/687-watch-command.yaml

version: 1
name: Watch command test
creative: true
description: Wake from wait upon entity placement
objectives:
  - goal:
      - grab a tree before the competitor steals it.
    condition: |
      as base {has "tree"}
    prerequisite:
      not: stolen
  - id: stolen
    goal:
      - Competitor steals a tree
    condition: |
      competitor <- robotnamed "competitor";
      as competitor {has "tree"}
solution: |
  watch forward;
  wait 80;
  move;
  grab;
robots:
  - name: base
    dir: [0,1]
    display:
      char: Ω
      attr: robot
    devices:
      - logger
      - string
      - grabber
      - treads
  - name: competitor
    dir: [0, -1]
    display:
      char: b
      attr: robot
    devices:
      - logger
      - string
      - grabber
      - treads
    program: |
      wait 70;
      move;
      grab;
      turn back;
      move;
  - name: planter
    dir: [1, 0]
    display:
      char: p
      attr: robot
    inventory:
      - [10, tree]
    devices:
      - logger
      - string
      - grabber
      - treads
    program: |
      def doN = \n. \f. if (n > 0) {f; doN (n - 1) f} {}; end;
      doN 7 (move; wait 4; place "tree";);
known: []
world:
  palette:
    'Ω': [grass, null, base]
    p : [grass, null, planter]
    b : [grass, null, competitor]
    '.': [grass]
    'T': [grass, tree]
  upperleft: [0, 0]
  map: |
   ......b...
   .p........
   ......Ω...