packages feed

swarm-0.5.0.0: data/scenarios/Testing/1355-combustion.yaml

version: 1
name: Combustion
creative: false
seed: 0
description: Demo of spreading fire
objectives:
  - goal:
      - Blow up the dynamite
    condition: |
      j <- robotnamed "judge";
      as j {
        ishere "crater";
      };
solution: |
  def doN = \n. \f. if (n > 0) {f; doN (n - 1) f} {}; end;

  move;
  ignite forward;
  turn right;
  move;
  ignite forward;
  turn right;
  move; move; move;
  turn right;
  move;
  ignite left;
  move;
  turn right;
  doN 2 (move; ignite left);
  doN 14 move;
  turn left;
  doN 5 move;
  turn left;
  ignite right;
  doN 8 move;
  ignite right;
  doN 10 move;
  ignite right;
  doN 8 move;
  ignite right;
robots:
  - name: base
    dir: [1, 0]
    devices:
      - branch predictor
      - calculator
      - dictionary
      - comparator
      - logger
      - treads
      - torch
  - name: judge
    dir: [1, 0]
    system: true
    display:
      invisible: true
      char: J
entities:
- name: torch
  display:
    attr: wood
    char: 't'
  description:
    - Can set things on fire
  properties: [known, portable]
  capabilities: [ignite]
- name: fuse
  display:
    attr: wood
    char: '~'
  description:
    - Reliably combustible
  combustion:
    ignition: 1
    duration: [8, 8]
    product: null
  properties: [known, portable, combustible]
- name: dynamite
  display:
    attr: red
    char: '!'
  description:
    - Explosive material
  combustion:
    ignition: 1
    duration: [2, 2]
    product: crater
  properties: [known, portable, combustible]
- name: crater
  display:
    attr: rock
    char: '@'
  description:
    - Result of explosive excavation
  properties: [known]
known: [ash, tree, log, board, paper, cotton]
world:
  palette:
    'Ω': [grass, null, base]
    'T': [grass, tree]
    'q': [grass, paper]
    'l': [grass, log]
    'b': [grass, board]
    'i': [grass, cotton]
    'F': [grass, fuse]
    'd': [grass, dynamite, judge]
    '.': [grass]
  upperleft: [0, 0]
  map: |
   ..iiii....bbbb..TT..llll....iiii.....
   ..iiii....bbbb..TT..llll....iiii.....
   ..iiii....bbbb..TT..llll....iiii.....
   ..iiii....bbbb..TT..llll....iiii.....
   ..iiii....bbbb..TT..llll....iiii.....
   ..iiii....bbbb..TT..llll....iiii.....
   ..TTTT....TTTT..TT..TTTT....TTTT.....
   ..TTTT....TTTT..TT..TTTT....TTTT.....
   ................TT...................
   ................TT...................
   iiiiiiiiiii.....TT....FFFFF...FFFFF..
   ......iiiiii....TT....F...F...F...F..
   iiiiiiiiiiiii...TT....F...F...F...F..
   ......iiiiiiii........F...F...F...F..
   iiiiiiiiiiiiiii..Ω.FFFF...FFFFF...d..
   ......iiiiiiii.......................
   iiiiiiiiiiiii.....qqqqqqqqqqqqqqqq...
   ......iiiiii......qqqqqqqqqqqqqqqq...
   iiiiiiiiiii.......qqqqqqqqqqqqqqqq...
   ..................qqqqqqqqqqqqqqqq...
   ..................qqqqqqqqqqqqqqqq...
   ..................qqqqqqqqqqqqqqqq...
   ..................qqqqqqqqqqqqqqqq...
   ..................qqqqqqqqqqqqqqqq...