packages feed

swarm-0.3.0.0: data/scenarios/Challenges/teleport.yaml

version: 1
name: Portal room
author: Ondřej Šebek
description: An impossible challenge - can you magically jump across the water?
objectives:
  - goal:
      - Get to the other room and grab the lambda.
      - Oh wait.
      - The tunnel is flooded.
      - Just give up then. It is impossible to get there.
    condition: |
      try {
        as base {has "lambda"}
      } { return false }
solution: |
  def w2 = turn back; turn back end;
  def w10 = w2; w2; w2; w2; w2 end;
  turn back; move;move;move; w10; move;move;move; grab
robots:
  - name: base
    loc: [3,0]
    dir: [1,0]
    devices:
      - treads
      - logger
      - grabber
      - dictionary
    inventory:
      - [0, lambda]
  - name: portkey1
    system: true
    loc: [0,0]
    dir: [0,0]
    program: |
      def forever = \prog. wait 10; prog; forever prog; end;
      destRob <- robotNamed "portkey2";
      destPos <- as destRob {whereami};
      myPos <- whereami;
      forever (
        basePos <- as base {whereami};
        if (myPos == basePos) {teleport base destPos} {};
      );
  - name: portkey2
    system: true
    loc: [16,0]
    dir: [0,0]
    program: |
      def forever = \prog. wait 10; prog; forever prog; end;
      wait 5;
      destRob <- robotNamed "portkey1";
      destPos <- as destRob {whereami};
      myPos <- whereami;
      forever (
        basePos <- as base {whereami};
        if (myPos == basePos) {teleport base destPos} {};
      );
known: [water, wavy water, flower, tree]
world:
  default: [ice, water]
  palette:
    ',': [ice, water]
    ' ': [ice, water]
    '~': [ice, wavy water]
    '*': [grass, flower]
    'T': [grass, tree]
    '.': [grass]
    '_': [stone]
    '┌': [stone, upper left corner]
    '┐': [stone, upper right corner]
    '└': [stone, lower left corner]
    '┘': [stone, lower right corner]
    '─': [stone, horizontal wall]
    '│': [stone, vertical wall]
    'λ': [grass, lambda]
  upperleft: [-1, 3]
  map: |
    ~~   ~         ~    ~
    ~┌─────┐~  ┌─────┐~ ,
    ┌┘.....└───┘T...*└┐ ~
    │_....._   _..λ.._│ ,
    └┐.....┌───┐*...T┌┘ ~
    ~└─────┘ ~~└─────┘~ ,
    ~~~   ~        ~    ~