packages feed

swarm-0.7.0.0: data/scenarios/Challenges/Mazes/easy_spiral_maze.yaml

version: 1
name: Spiral shaped maze
author: Ondřej Šebek
description: A maze shaped like a spiral, with a twist!
objectives:
  - goal:
      - You find yourself in the middle of a large maze.
      - It's straightforward to get out, but the path is long and dull.
      - You need to send a robot to the goal square, labelled with an exclamation mark; you win by `grab`bing the `goal`{=entity}.
      - Beware! The winding corridors are wider then they look!
    condition: |
      j <- robotNamed "judge";
      as j {has "goal"}
solution: |
  def until = \p. \c. b <- p; if b {} {c; until p c} end;
  def fwd = until blocked move end;
  build {
    turn west;
    until (ishere "goal") (fwd; turn right);
    grab
  }
robots:
  - name: base
    dir: north
    display:
      char: 'Ω'
      attr: robot
    devices:
      - dictionary
      - 3D printer
      - logger
      - grabber
    inventory:
      - [50, solar panel]
      - [50, treads]
      - [50, compass]
      - [50, scanner]
      - [50, lambda]
      - [50, branch predictor]
      - [50, strange loop]
      - [50, logger]
      - [50, grabber]
      - [0, goal]
  - name: judge
    dir: [0, 0]
    system: true
    program: |
      def until = \c. b <- c; if b {} {until c} end;
      until (d <- scan down; pure (d == inl ()));
      create "goal"
entities:
  - name: wall
    display:
      char: █
      attr: rock
    description:
      - An impassable stone wall.
    properties: [unwalkable, known]
  - name: goal
    display:
      char: '!'
      attr: device
    description:
      - The place you're trying to reach!  You win by executing `grab` on this item.
    properties: [known, pickable]
world:
  dsl: |
    {ice}
  palette:
    'Ω': [stone, null, base]
    ' ': [stone, null]
    '█': [stone, wall]
    '!': [stone, goal, judge]
  upperleft: [0, 0]
  map: |
    ████████████████████████████████████
    ██                                ██
    ██  ████████████████████████████  ██
    ██  ██                        ██  ██
    ██  ██  ████████████████████  ██  ██
    ██  ██  ██                ██  ██  ██
    ██  ██  ██  ████████████  ██  ██  ██
    ██  ██  ██  ██        ██  ██  ██  ██
    ██  ██  ██  ██  ████  ██  ██  ██  ██
    ██  ██  ██  ██   Ω██  ██  ██  ██  ██
    ██  ██  ██  ████████  ██  ██  ██  ██
    ██  ██  ██            ██  ██  ██  ██
    ██  ██  ████████████████  ██  ██  ██
    ██  ██                    ██  ██  ██
    ██  ████████████████████████  ██  ██
    ██                            ██  ██
    ████████████████████████████████  ██
    █!                                ██
    ████████████████████████████████████