mirror of
https://github.com/swarm-game/swarm.git
synced 2024-10-26 17:38:34 +03:00
normalize scenarios (#1711)
Closes #845 **All changes are non-significant whitespace.** This can be verified with: git show --ignore-all-space --ignore-blank-lines in which the remaining changes are only elimination of manual word-wrap in descriptions. Normalization is accomplished with this command: scripts/normalize-all-scenarios.sh This is an initial normalization pass that shall be a pre-requisite for #1713.
This commit is contained in:
parent
3cfc3c4ee9
commit
ab9f86ee70
@ -4,13 +4,8 @@ author: Brent Yorgey
|
||||
description: Make 2048!
|
||||
objectives:
|
||||
- goal:
|
||||
- OK, OK, it's not really the same as the classic "2048" game.
|
||||
However, your goal is still to make 2048! You start with a `1`{=entity}
|
||||
which regrows immediately when
|
||||
it is `harvest`ed, so if you plant it, you can get as many as you want. Your
|
||||
job is to combine `1`{=entity}s in order to make a `2048`{=entity}
|
||||
entity.
|
||||
- "Hint: the `format` command can turn numbers into strings!"
|
||||
- OK, OK, it's not really the same as the classic "2048" game. However, your goal is still to make 2048! You start with a `1`{=entity} which regrows immediately when it is `harvest`ed, so if you plant it, you can get as many as you want. Your job is to combine `1`{=entity}s in order to make a `2048`{=entity} entity.
|
||||
- "Hint: the `format` command can turn numbers into strings!"
|
||||
condition: |
|
||||
try {
|
||||
as base {has "2048"}
|
||||
@ -29,132 +24,130 @@ entities:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- This is a one. Maybe you can combine it with other ones
|
||||
somehow.
|
||||
- This is a one. Maybe you can combine it with other ones somehow.
|
||||
properties: [growable, portable, infinite]
|
||||
- name: "2"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- This is a two. Maybe you can combine it with other twos
|
||||
somehow.
|
||||
- This is a two. Maybe you can combine it with other twos somehow.
|
||||
properties: [portable]
|
||||
- name: "4"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- This is a four. You get the idea.
|
||||
- This is a four. You get the idea.
|
||||
properties: [portable]
|
||||
- name: "8"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- An eight.
|
||||
- An eight.
|
||||
properties: [portable]
|
||||
- name: "16"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- A 16.
|
||||
- A 16.
|
||||
properties: [portable]
|
||||
- name: "32"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- A 32.
|
||||
- A 32.
|
||||
properties: [portable]
|
||||
- name: "64"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- A 64.
|
||||
- A 64.
|
||||
properties: [portable]
|
||||
- name: "128"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- A 128.
|
||||
- A 128.
|
||||
properties: [portable]
|
||||
- name: "256"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- A 256.
|
||||
- A 256.
|
||||
properties: [portable]
|
||||
- name: "512"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- A 512.
|
||||
- A 512.
|
||||
properties: [portable]
|
||||
- name: "1024"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- A 1024.
|
||||
- A 1024.
|
||||
properties: [portable]
|
||||
- name: "2048"
|
||||
display:
|
||||
attr: gold
|
||||
char: "#"
|
||||
description:
|
||||
- A 2048.
|
||||
- A 2048.
|
||||
properties: [portable]
|
||||
recipes:
|
||||
- in:
|
||||
- [2, "1"]
|
||||
- [2, "1"]
|
||||
out:
|
||||
- [1, "2"]
|
||||
- [1, "2"]
|
||||
- in:
|
||||
- [2, "2"]
|
||||
- [2, "2"]
|
||||
out:
|
||||
- [1, "4"]
|
||||
- [1, "4"]
|
||||
- in:
|
||||
- [2, "4"]
|
||||
- [2, "4"]
|
||||
out:
|
||||
- [1, "8"]
|
||||
- [1, "8"]
|
||||
- in:
|
||||
- [2, "8"]
|
||||
- [2, "8"]
|
||||
out:
|
||||
- [1, "16"]
|
||||
- [1, "16"]
|
||||
- in:
|
||||
- [2, "16"]
|
||||
- [2, "16"]
|
||||
out:
|
||||
- [1, "32"]
|
||||
- [1, "32"]
|
||||
- in:
|
||||
- [2, "32"]
|
||||
- [2, "32"]
|
||||
out:
|
||||
- [1, "64"]
|
||||
- [1, "64"]
|
||||
- in:
|
||||
- [2, "64"]
|
||||
- [2, "64"]
|
||||
out:
|
||||
- [1, "128"]
|
||||
- [1, "128"]
|
||||
- in:
|
||||
- [2, "128"]
|
||||
- [2, "128"]
|
||||
out:
|
||||
- [1, "256"]
|
||||
- [1, "256"]
|
||||
- in:
|
||||
- [2, "256"]
|
||||
- [2, "256"]
|
||||
out:
|
||||
- [1, "512"]
|
||||
- [1, "512"]
|
||||
- in:
|
||||
- [2, "512"]
|
||||
- [2, "512"]
|
||||
out:
|
||||
- [1, "1024"]
|
||||
- [1, "1024"]
|
||||
- in:
|
||||
- [2, "1024"]
|
||||
- [2, "1024"]
|
||||
out:
|
||||
- [1, "2048"]
|
||||
- [1, "2048"]
|
||||
robots:
|
||||
- name: base
|
||||
dir: east
|
||||
|
@ -3,14 +3,14 @@ name: Cave shaped maze
|
||||
author: Ondřej Šebek
|
||||
description: A maze shaped like a cave. It only goes down or forward.
|
||||
objectives:
|
||||
- goal:
|
||||
- You are at the top of a cave that gradually descends until reaching a dead end.
|
||||
- At its bottom is a great treasure.
|
||||
- Luckily, the cave does not branch out, so it is easy to find the path to the treasure.
|
||||
- Send a robot to the the item marked as '**!**'. You win once the robot `grab`s it.
|
||||
condition: |
|
||||
j <- robotNamed "judge";
|
||||
as j {has "goal"}
|
||||
- goal:
|
||||
- You are at the top of a cave that gradually descends until reaching a dead end.
|
||||
- At its bottom is a great treasure.
|
||||
- Luckily, the cave does not branch out, so it is easy to find the path to the treasure.
|
||||
- Send a robot to the the item marked as '**!**'. You win once the robot `grab`s it.
|
||||
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;
|
||||
@ -42,7 +42,7 @@ robots:
|
||||
- [50, grabber]
|
||||
- [0, goal]
|
||||
- name: judge
|
||||
dir: [0,0]
|
||||
dir: [0, 0]
|
||||
system: true
|
||||
program: |
|
||||
def until = \c. b <- c; if b {} {until c} end;
|
||||
@ -55,14 +55,14 @@ entities:
|
||||
char: █
|
||||
attr: rock
|
||||
description:
|
||||
- An impassable stone wall.
|
||||
- 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.
|
||||
- The place you're trying to reach! You win by executing `grab` on this item.
|
||||
properties: [known, portable]
|
||||
world:
|
||||
dsl: |
|
||||
@ -73,7 +73,7 @@ world:
|
||||
'~': [stone, water]
|
||||
'█': [stone, wall]
|
||||
'!': [stone, goal, judge]
|
||||
upperleft: [0,0]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
██████████████████████████████
|
||||
█Ω ████████ █████████████████
|
||||
|
@ -3,15 +3,14 @@ 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"}
|
||||
- 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;
|
||||
@ -43,7 +42,7 @@ robots:
|
||||
- [50, grabber]
|
||||
- [0, goal]
|
||||
- name: judge
|
||||
dir: [0,0]
|
||||
dir: [0, 0]
|
||||
system: true
|
||||
program: |
|
||||
def until = \c. b <- c; if b {} {until c} end;
|
||||
@ -55,14 +54,14 @@ entities:
|
||||
char: █
|
||||
attr: rock
|
||||
description:
|
||||
- An impassable stone wall.
|
||||
- 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.
|
||||
- The place you're trying to reach! You win by executing `grab` on this item.
|
||||
properties: [known, portable]
|
||||
world:
|
||||
dsl: |
|
||||
@ -72,7 +71,7 @@ world:
|
||||
' ': [stone, null]
|
||||
'█': [stone, wall]
|
||||
'!': [stone, goal, judge]
|
||||
upperleft: [0,0]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
████████████████████████████████████
|
||||
██ ██
|
||||
|
@ -1,22 +1,17 @@
|
||||
version: 1
|
||||
name: Invisible maze
|
||||
author: Brent Yorgey
|
||||
description: There is a maze, but it can't be seen, only sensed... can you
|
||||
program a robot to navigate it successfully?
|
||||
description: There is a maze, but it can't be seen, only sensed... can you program a robot to navigate it successfully?
|
||||
objectives:
|
||||
- goal:
|
||||
- There is a maze, but it can't be seen, only sensed... can you
|
||||
program a robot to navigate it successfully? You need to get a robot
|
||||
to the goal square, labelled with an exclamation mark; you win by `grab`bing
|
||||
the `goal`{=entity}.
|
||||
- In this challenge, it is guaranteed that the maze is a tree, that is,
|
||||
there are no loops within the maze.
|
||||
condition: |
|
||||
try {
|
||||
teleport self (27, -17);
|
||||
b <- ishere "goal";
|
||||
return (not b)
|
||||
} { return false }
|
||||
- goal:
|
||||
- There is a maze, but it can't be seen, only sensed... can you program a robot to navigate it successfully? You need to get a robot to the goal square, labelled with an exclamation mark; you win by `grab`bing the `goal`{=entity}.
|
||||
- In this challenge, it is guaranteed that the maze is a tree, that is, there are no loops within the maze.
|
||||
condition: |
|
||||
try {
|
||||
teleport self (27, -17);
|
||||
b <- ishere "goal";
|
||||
return (not b)
|
||||
} { return false }
|
||||
solution: |
|
||||
def tL = turn left end;
|
||||
def tR = turn right end;
|
||||
@ -55,14 +50,14 @@ entities:
|
||||
display:
|
||||
invisible: true
|
||||
description:
|
||||
- An invisible wall.
|
||||
- An invisible 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.
|
||||
- The place you're trying to reach! You win by executing `grab` on this item.
|
||||
properties: [known, portable]
|
||||
world:
|
||||
dsl: |
|
||||
@ -73,7 +68,7 @@ world:
|
||||
'x': [grass, wall]
|
||||
'@': [grass, boulder]
|
||||
'!': [grass, goal]
|
||||
upperleft: [-1,1]
|
||||
upperleft: [-1, 1]
|
||||
map: |
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@Ω........x...x..............@
|
||||
|
@ -1,22 +1,17 @@
|
||||
version: 1
|
||||
name: Invisible, loopy maze
|
||||
author: Brent Yorgey
|
||||
description: There is a maze, but it can't be seen, only sensed... can you
|
||||
program a robot to navigate it successfully?
|
||||
description: There is a maze, but it can't be seen, only sensed... can you program a robot to navigate it successfully?
|
||||
objectives:
|
||||
- goal:
|
||||
- There is a maze, but it can't be seen, only sensed... can you
|
||||
program a robot to navigate it successfully? You need to get a robot
|
||||
to the goal square, labelled with an exclamation mark; you win by `grab`bing
|
||||
the `goal`{=entity}.
|
||||
- In this challenge, you are NOT guaranteed that the maze is a tree, that is,
|
||||
the maze may contain loops.
|
||||
condition: |
|
||||
try {
|
||||
teleport self (27, -17);
|
||||
b <- ishere "goal";
|
||||
return (not b)
|
||||
} { return false }
|
||||
- goal:
|
||||
- There is a maze, but it can't be seen, only sensed... can you program a robot to navigate it successfully? You need to get a robot to the goal square, labelled with an exclamation mark; you win by `grab`bing the `goal`{=entity}.
|
||||
- In this challenge, you are NOT guaranteed that the maze is a tree, that is, the maze may contain loops.
|
||||
condition: |
|
||||
try {
|
||||
teleport self (27, -17);
|
||||
b <- ishere "goal";
|
||||
return (not b)
|
||||
} { return false }
|
||||
solution: |
|
||||
run "scenarios/Challenges/Mazes/loopy_maze_sol.sw"
|
||||
robots:
|
||||
@ -48,14 +43,14 @@ entities:
|
||||
display:
|
||||
invisible: true
|
||||
description:
|
||||
- An invisible wall.
|
||||
- An invisible 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.
|
||||
- The place you're trying to reach! You win by executing `grab` on this item.
|
||||
properties: [known, portable]
|
||||
world:
|
||||
dsl: |
|
||||
@ -66,7 +61,7 @@ world:
|
||||
'x': [grass, wall]
|
||||
'@': [grass, boulder]
|
||||
'!': [grass, goal]
|
||||
upperleft: [-1,1]
|
||||
upperleft: [-1, 1]
|
||||
map: |
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
@.........x...x..............@
|
||||
|
@ -119,10 +119,10 @@ robots:
|
||||
invisible: true
|
||||
char: 'Q'
|
||||
attr: bee
|
||||
program:
|
||||
program: |
|
||||
run "scenarios/Challenges/Ranching/_beekeeping/queenbee.sw"
|
||||
solution: |
|
||||
run "scenarios/Challenges/Ranching/_beekeeping/solution.sw"
|
||||
run "scenarios/Challenges/Ranching/_beekeeping/solution.sw"
|
||||
structures:
|
||||
- name: beehive
|
||||
recognize: [north]
|
||||
@ -161,8 +161,7 @@ entities:
|
||||
attr: flower
|
||||
char: '*'
|
||||
description:
|
||||
- A delicate flower that grows wild in local meadows.
|
||||
Produces `nectar`{=entity} when `harvest`ed.
|
||||
- A delicate flower that grows wild in local meadows. Produces `nectar`{=entity} when `harvest`ed.
|
||||
properties: [known, growable]
|
||||
yields: nectar
|
||||
growth: [80, 120]
|
||||
@ -171,28 +170,28 @@ entities:
|
||||
attr: device
|
||||
char: 'k'
|
||||
description:
|
||||
- All the essentials to equip your own "worker bee"
|
||||
- All the essentials to equip your own "worker bee"
|
||||
properties: [known, portable]
|
||||
- name: reed
|
||||
display:
|
||||
attr: plant
|
||||
char: 'r'
|
||||
description:
|
||||
- Reeds, grow near water
|
||||
- Reeds, grow near water
|
||||
properties: [known, portable, growable]
|
||||
- name: honeycomb
|
||||
display:
|
||||
char: 'x'
|
||||
attr: gold
|
||||
description:
|
||||
- Product of bees that have consumed nectar
|
||||
- Product of bees that have consumed nectar
|
||||
properties: [known, portable]
|
||||
- name: proboscis
|
||||
display:
|
||||
char: 'p'
|
||||
attr: device
|
||||
description:
|
||||
- Senses direction to nectar-producing flowers
|
||||
- Senses direction to nectar-producing flowers
|
||||
properties: [known, portable]
|
||||
capabilities: [detectdirection, structure]
|
||||
- name: honey
|
||||
@ -200,123 +199,123 @@ entities:
|
||||
char: 'h'
|
||||
attr: gold
|
||||
description:
|
||||
- Pure liquid honey
|
||||
- Pure liquid honey
|
||||
properties: [known, portable]
|
||||
- name: mead
|
||||
display:
|
||||
char: 'm'
|
||||
description:
|
||||
- Honey-based alcoholic beverage
|
||||
- Honey-based alcoholic beverage
|
||||
properties: [known, portable]
|
||||
- name: honey extractor
|
||||
display:
|
||||
char: 'e'
|
||||
attr: device
|
||||
description:
|
||||
- Device for extracting honey from the comb
|
||||
- Device for extracting honey from the comb
|
||||
properties: [known, portable]
|
||||
- name: buzz
|
||||
display:
|
||||
char: 'z'
|
||||
description:
|
||||
- Result of discarding surplus honeycomb
|
||||
- Result of discarding surplus honeycomb
|
||||
properties: [known, portable]
|
||||
- name: wax gland
|
||||
display:
|
||||
char: 'g'
|
||||
description:
|
||||
- Required to make honeycomb
|
||||
- Required to make honeycomb
|
||||
properties: [known]
|
||||
- name: nectar
|
||||
display:
|
||||
char: 'n'
|
||||
attr: gold
|
||||
description:
|
||||
- Obtained from wildflowers
|
||||
- Obtained from wildflowers
|
||||
properties: [known, portable]
|
||||
- name: honey frame
|
||||
display:
|
||||
char: '-'
|
||||
attr: iceblue
|
||||
description:
|
||||
- Internal component of a beehive
|
||||
- Internal component of a beehive
|
||||
properties: [known, portable]
|
||||
- name: stave
|
||||
display:
|
||||
char: 'l'
|
||||
attr: wood
|
||||
description:
|
||||
- Wooden plank comprising the sides of a cask
|
||||
- Wooden plank comprising the sides of a cask
|
||||
properties: [known, portable]
|
||||
- name: cask
|
||||
display:
|
||||
char: 'c'
|
||||
attr: wood
|
||||
description:
|
||||
- Wooden barrel for liquids
|
||||
- Wooden barrel for liquids
|
||||
properties: [known, portable]
|
||||
- name: water cask
|
||||
display:
|
||||
char: 'c'
|
||||
attr: water_cask
|
||||
description:
|
||||
- Water-filled cask
|
||||
- Water-filled cask
|
||||
properties: [known, portable]
|
||||
- name: lakewater
|
||||
display:
|
||||
attr: water
|
||||
char: ' '
|
||||
description:
|
||||
- Potable water from a lake
|
||||
- Potable water from a lake
|
||||
properties: [known, infinite, liquid]
|
||||
- name: siphon
|
||||
display:
|
||||
char: 's'
|
||||
attr: device
|
||||
description:
|
||||
- Used to fill a cask with water
|
||||
- Used to fill a cask with water
|
||||
properties: [known, portable]
|
||||
- name: steel hoop
|
||||
display:
|
||||
char: 'o'
|
||||
attr: iron
|
||||
description:
|
||||
- Binds staves into a cask
|
||||
- Binds staves into a cask
|
||||
properties: [known, portable]
|
||||
- name: wall
|
||||
display:
|
||||
char: 'w'
|
||||
attr: wood
|
||||
description:
|
||||
- Outer walls of the building
|
||||
- Outer walls of the building
|
||||
properties: [known, unwalkable]
|
||||
- name: table
|
||||
display:
|
||||
char: 't'
|
||||
attr: wood
|
||||
description:
|
||||
- A segment of banquet table
|
||||
- A segment of banquet table
|
||||
properties: [known, portable]
|
||||
- name: hearth
|
||||
display:
|
||||
char: 'h'
|
||||
attr: rock
|
||||
description:
|
||||
- Encloses a fire to warm the hall
|
||||
- Encloses a fire to warm the hall
|
||||
properties: [known, unwalkable]
|
||||
- name: archway
|
||||
display:
|
||||
char: 'a'
|
||||
attr: rock
|
||||
description:
|
||||
- Grand entrance
|
||||
- Grand entrance
|
||||
properties: [known, portable]
|
||||
- name: stone tile
|
||||
display:
|
||||
char: '.'
|
||||
attr: rock
|
||||
description:
|
||||
- Refined flooring
|
||||
- Refined flooring
|
||||
properties: [known, portable]
|
||||
recipes:
|
||||
- in:
|
||||
|
@ -122,13 +122,13 @@ robots:
|
||||
program: |
|
||||
run "scenarios/Challenges/Ranching/_capture/opponent.sw"
|
||||
solution: |
|
||||
run "scenarios/Challenges/Ranching/_capture/solution.sw"
|
||||
run "scenarios/Challenges/Ranching/_capture/solution.sw"
|
||||
entities:
|
||||
- name: monolith
|
||||
display:
|
||||
char: '@'
|
||||
description:
|
||||
- Pushable rock
|
||||
- Pushable rock
|
||||
properties: [known, unwalkable, portable]
|
||||
capabilities: [push]
|
||||
- name: bacon
|
||||
@ -136,7 +136,7 @@ entities:
|
||||
attr: bacon
|
||||
char: 'Z'
|
||||
description:
|
||||
- Odiferous constitution of pig
|
||||
- Odiferous constitution of pig
|
||||
properties: [known]
|
||||
known: [flower, tree]
|
||||
world:
|
||||
|
@ -35,7 +35,7 @@ objectives:
|
||||
After you have done this, `place` the `bell`{=entity} anywhere, and then Bill will inspect
|
||||
your work.
|
||||
prerequisite:
|
||||
not: wrong_anwser
|
||||
not: wrong_anwser
|
||||
condition: |
|
||||
r <- robotnamed "setup";
|
||||
as r {has "bit (1)"};
|
||||
@ -90,14 +90,14 @@ robots:
|
||||
program: |
|
||||
run "scenarios/Challenges/Ranching/_powerset/setup.sw"
|
||||
solution: |
|
||||
run "scenarios/Challenges/Ranching/_powerset/solution.sw"
|
||||
run "scenarios/Challenges/Ranching/_powerset/solution.sw"
|
||||
entities:
|
||||
- name: rocket skates
|
||||
display:
|
||||
attr: silver
|
||||
char: 's'
|
||||
description:
|
||||
- Allows one to `stride` across multiple cells
|
||||
- Allows one to `stride` across multiple cells
|
||||
properties: [known, portable]
|
||||
capabilities: [movemultiple]
|
||||
- name: bell
|
||||
|
@ -151,7 +151,7 @@ robots:
|
||||
program: |
|
||||
run "scenarios/Challenges/Sliding Puzzles/_sliding-puzzle/setup.sw";
|
||||
solution: |
|
||||
run "scenarios/Challenges/Sliding Puzzles/_sliding-puzzle/solution.sw"
|
||||
run "scenarios/Challenges/Sliding Puzzles/_sliding-puzzle/solution.sw"
|
||||
entities:
|
||||
- name: gradiator
|
||||
display:
|
||||
@ -184,7 +184,7 @@ entities:
|
||||
attr: silver
|
||||
char: '/'
|
||||
description:
|
||||
- Facilitates pushing
|
||||
- Facilitates pushing
|
||||
properties: [known, portable]
|
||||
capabilities: [push]
|
||||
- name: sliding-tile
|
||||
|
@ -62,7 +62,7 @@ entities:
|
||||
display:
|
||||
char: '@'
|
||||
description:
|
||||
- Pushable rock
|
||||
- Pushable rock
|
||||
properties: [known, unwalkable, portable]
|
||||
known: [mountain, water, flower]
|
||||
world:
|
||||
|
@ -45,7 +45,7 @@ entities:
|
||||
display:
|
||||
char: '@'
|
||||
description:
|
||||
- Pushable rock
|
||||
- Pushable rock
|
||||
properties: [known, unwalkable, portable]
|
||||
known: [mountain, water, flower]
|
||||
world:
|
||||
|
@ -97,7 +97,7 @@ entities:
|
||||
display:
|
||||
char: '@'
|
||||
description:
|
||||
- Pushable rock
|
||||
- Pushable rock
|
||||
properties: [known, unwalkable, portable]
|
||||
known: [mountain, water, flower]
|
||||
world:
|
||||
|
@ -70,28 +70,28 @@ robots:
|
||||
- [5, strange loop]
|
||||
- [5, treads]
|
||||
solution: |
|
||||
run "scenarios/Challenges/Sokoban/_foresight/solution.sw"
|
||||
run "scenarios/Challenges/Sokoban/_foresight/solution.sw"
|
||||
entities:
|
||||
- name: monolith
|
||||
display:
|
||||
char: '@'
|
||||
attr: gold
|
||||
description:
|
||||
- Pushable rock
|
||||
- Pushable rock
|
||||
properties: [known, unwalkable, portable]
|
||||
- name: crate
|
||||
display:
|
||||
attr: wood
|
||||
char: '▪'
|
||||
description:
|
||||
- Pushable crate
|
||||
- Pushable crate
|
||||
properties: [known, portable, unwalkable]
|
||||
- name: wall
|
||||
display:
|
||||
attr: barrier
|
||||
char: '#'
|
||||
description:
|
||||
- Unmovable barrier
|
||||
- Unmovable barrier
|
||||
properties: [known, unwalkable]
|
||||
known: [mountain, water, 3D printer, flower]
|
||||
world:
|
||||
|
@ -78,7 +78,7 @@ robots:
|
||||
inventory:
|
||||
- [5, paperclip]
|
||||
solution: |
|
||||
run "scenarios/Challenges/_arbitrage/solution.sw"
|
||||
run "scenarios/Challenges/_arbitrage/solution.sw"
|
||||
entities:
|
||||
- name: paperclip
|
||||
display:
|
||||
|
@ -87,13 +87,8 @@ objectives:
|
||||
- id: get_map
|
||||
teaser: Get the map
|
||||
goal:
|
||||
- As a humble `peat`{=entity} farmer, you subsist in a simple cabin by the `bog`{=entity}.
|
||||
Though long content with this ascetic lifestyle, recently the barren walls have
|
||||
left you restless. Something is missing...
|
||||
- "The majestic landscape that is your back yard is insufficient to distract you---not
|
||||
even the ferocious, `lava`{=entity}-spewing volcano little more than a stone's throw from
|
||||
your porch.
|
||||
You are preoccupied by one task: to find the perfect household decoration."
|
||||
- As a humble `peat`{=entity} farmer, you subsist in a simple cabin by the `bog`{=entity}. Though long content with this ascetic lifestyle, recently the barren walls have left you restless. Something is missing...
|
||||
- "The majestic landscape that is your back yard is insufficient to distract you---not even the ferocious, `lava`{=entity}-spewing volcano little more than a stone's throw from your porch. You are preoccupied by one task: to find the perfect household decoration."
|
||||
- First, grab a `map`{=entity} to orient yourself.
|
||||
condition: |
|
||||
as base {
|
||||
@ -104,19 +99,11 @@ objectives:
|
||||
prerequisite: get_map
|
||||
goal:
|
||||
- You study the `map`{=entity}.
|
||||
- Glacier-bound mountains tower in the `east`,
|
||||
a volcano oozes a river of `lava`{=entity} to the `north`, and beyond that lies a mountain lake, punctuated with islands
|
||||
in the northwest.
|
||||
Iron mines penetrate the base of the volcano. They could be useful, but how will you get there?
|
||||
- A `jungle`{=entity} abuts the volcano, ensconcing an ancient ruin.
|
||||
The map notes that bygone travelers have stashed tools among the northeasterly mountains to
|
||||
blaze a path through the jungle.
|
||||
- Glacier-bound mountains tower in the `east`, a volcano oozes a river of `lava`{=entity} to the `north`, and beyond that lies a mountain lake, punctuated with islands in the northwest. Iron mines penetrate the base of the volcano. They could be useful, but how will you get there?
|
||||
- A `jungle`{=entity} abuts the volcano, ensconcing an ancient ruin. The map notes that bygone travelers have stashed tools among the northeasterly mountains to blaze a path through the jungle.
|
||||
- Your only neighbor, a `hemp`{=entity} farmer to the northwest, has evacuated since the sudden volcanic eruption.
|
||||
- A disused quarry and clay pit flanks your cabin to the `west`, as does the familiar, swampy `bog`{=entity} to the `east`.
|
||||
A highly-prized `flower`{=entity} is said to grow in the caves beyond the bog.
|
||||
- Your mind is made up. You will pillage the ruins for treasure! Head to the ruins and `scan` them.
|
||||
Ingenuity and endurance are your allies as you forge paths through varied obstacles.
|
||||
Study your "recipes" for clues!
|
||||
- A disused quarry and clay pit flanks your cabin to the `west`, as does the familiar, swampy `bog`{=entity} to the `east`. A highly-prized `flower`{=entity} is said to grow in the caves beyond the bog.
|
||||
- Your mind is made up. You will pillage the ruins for treasure! Head to the ruins and `scan` them. Ingenuity and endurance are your allies as you forge paths through varied obstacles. Study your "recipes" for clues!
|
||||
condition: |
|
||||
as base {
|
||||
knows "temple";
|
||||
@ -126,8 +113,7 @@ objectives:
|
||||
prerequisite: find_temple
|
||||
goal:
|
||||
- "A note on the door says:"
|
||||
- '"Greetings, intrepid traveler. Encircle this temple with the rare `flower`{=entity} of the southeastern
|
||||
caves, and the treasure of this `temple`{=entity} shall be revealed."'
|
||||
- '"Greetings, intrepid traveler. Encircle this temple with the rare `flower`{=entity} of the southeastern caves, and the treasure of this `temple`{=entity} shall be revealed."'
|
||||
- Plant a ring of flowers around the jungle temple.
|
||||
condition: |
|
||||
as base {
|
||||
|
@ -70,10 +70,8 @@ objectives:
|
||||
as base {has "coal lump"}
|
||||
- goal:
|
||||
- Your base got some coal!
|
||||
- Now fashion more of it into a "coal briquette", and place it
|
||||
so that the hauler (=) can pick it up.
|
||||
- The hauler will periodically stop at the base
|
||||
to check if a load is available.
|
||||
- Now fashion more of it into a "coal briquette", and place it so that the hauler (=) can pick it up.
|
||||
- The hauler will periodically stop at the base to check if a load is available.
|
||||
condition: |
|
||||
hauler <- robotnamed "hauler";
|
||||
as hauler {has "coal briquette"}
|
||||
@ -174,8 +172,6 @@ recipes:
|
||||
- [1, energy]
|
||||
required:
|
||||
- [1, furnace]
|
||||
|
||||
|
||||
known: [boulder, lignite mine]
|
||||
seed: 0
|
||||
world:
|
||||
|
@ -4,8 +4,7 @@ author: Ondřej Šebek
|
||||
description: In this quirky challenge, you move as the chess knight piece. Can you capture the enemy king?
|
||||
objectives:
|
||||
- goal:
|
||||
- Robots can use the `move` command to move.
|
||||
But they only `turn` in cardinal directions.
|
||||
- Robots can use the `move` command to move. But they only `turn` in cardinal directions.
|
||||
- You are special. You are a knight.
|
||||
- Go forth and capture the King!
|
||||
condition: |
|
||||
@ -19,8 +18,8 @@ solution: |
|
||||
move; move; move; turn right; move; turn left; move;
|
||||
robots:
|
||||
- name: horse
|
||||
loc: [0,0]
|
||||
dir: [2,-1]
|
||||
loc: [0, 0]
|
||||
dir: [2, -1]
|
||||
devices:
|
||||
- treads
|
||||
- logger
|
||||
@ -28,8 +27,8 @@ robots:
|
||||
display:
|
||||
char: '♘'
|
||||
- name: king
|
||||
loc: [7,-6]
|
||||
dir: [0,0]
|
||||
loc: [7, -6]
|
||||
dir: [0, 0]
|
||||
display:
|
||||
char: '♚'
|
||||
known: [water]
|
||||
|
@ -50,7 +50,7 @@ robots:
|
||||
program: |
|
||||
run "scenarios/Challenges/_combo-lock/setup.sw"
|
||||
solution: |
|
||||
run "scenarios/Challenges/_combo-lock/solution.sw"
|
||||
run "scenarios/Challenges/_combo-lock/solution.sw"
|
||||
entities:
|
||||
- name: gate
|
||||
display:
|
||||
@ -81,25 +81,25 @@ entities:
|
||||
properties: [known]
|
||||
recipes:
|
||||
- in:
|
||||
- [1, "dial (R)"]
|
||||
- [1, "dial (R)"]
|
||||
out:
|
||||
- [1, "dial (G)"]
|
||||
- [1, "dial (G)"]
|
||||
required:
|
||||
- [1, drill]
|
||||
- [1, drill]
|
||||
time: 0
|
||||
- in:
|
||||
- [1, "dial (G)"]
|
||||
- [1, "dial (G)"]
|
||||
out:
|
||||
- [1, "dial (B)"]
|
||||
- [1, "dial (B)"]
|
||||
required:
|
||||
- [1, drill]
|
||||
- [1, drill]
|
||||
time: 0
|
||||
- in:
|
||||
- [1, "dial (B)"]
|
||||
- [1, "dial (B)"]
|
||||
out:
|
||||
- [1, "dial (R)"]
|
||||
- [1, "dial (R)"]
|
||||
required:
|
||||
- [1, drill]
|
||||
- [1, drill]
|
||||
time: 0
|
||||
known: [boulder, water, bitcoin]
|
||||
world:
|
||||
|
@ -4,15 +4,10 @@ creative: false
|
||||
description: Serve restaurant patrons with the dim sum cart.
|
||||
objectives:
|
||||
- goal:
|
||||
- It is the grand opening of Sigma (Σ), the hot new
|
||||
dim sum restaurant in town.
|
||||
You are the solitary wait staff.
|
||||
- It seems that the manager went a bit overboard on furniture;
|
||||
there are dozens of `table`{=entity}s,
|
||||
but hardly any room to walk!
|
||||
- It is the grand opening of Sigma (Σ), the hot new dim sum restaurant in town. You are the solitary wait staff.
|
||||
- It seems that the manager went a bit overboard on furniture; there are dozens of `table`{=entity}s, but hardly any room to walk!
|
||||
- Serve the blue patron with a `full cart`{=entity} (f) of food, twice.
|
||||
- The `empty cart`{=entity} (e) must be `push`ed to the
|
||||
northwest corner for the cook to load it with food.
|
||||
- The `empty cart`{=entity} (e) must be `push`ed to the northwest corner for the cook to load it with food.
|
||||
condition: |
|
||||
p <- robotnamed "patron";
|
||||
as p {
|
||||
@ -78,59 +73,59 @@ robots:
|
||||
program: |
|
||||
run "scenarios/Challenges/_dimsum/patron.sw"
|
||||
entities:
|
||||
- name: table
|
||||
display:
|
||||
attr: wood
|
||||
char: 't'
|
||||
description:
|
||||
- Pushable table
|
||||
properties: [known, pushable]
|
||||
- name: spatula
|
||||
display:
|
||||
char: 's'
|
||||
description:
|
||||
- Serving utensil for the cart
|
||||
properties: [known, portable]
|
||||
- name: fork
|
||||
display:
|
||||
char: 'k'
|
||||
description:
|
||||
- Eating utensil for patron
|
||||
properties: [known, portable]
|
||||
- name: food
|
||||
display:
|
||||
char: 'f'
|
||||
description:
|
||||
- Food from the cart
|
||||
properties: [known, portable]
|
||||
- name: empty cart
|
||||
display:
|
||||
attr: copper
|
||||
char: 'e'
|
||||
description:
|
||||
- Food cart
|
||||
properties: [known, pushable]
|
||||
- name: full cart
|
||||
display:
|
||||
attr: gold
|
||||
char: 'f'
|
||||
description:
|
||||
- Food cart
|
||||
properties: [known, pushable]
|
||||
- name: table
|
||||
display:
|
||||
attr: wood
|
||||
char: 't'
|
||||
description:
|
||||
- Pushable table
|
||||
properties: [known, pushable]
|
||||
- name: spatula
|
||||
display:
|
||||
char: 's'
|
||||
description:
|
||||
- Serving utensil for the cart
|
||||
properties: [known, portable]
|
||||
- name: fork
|
||||
display:
|
||||
char: 'k'
|
||||
description:
|
||||
- Eating utensil for patron
|
||||
properties: [known, portable]
|
||||
- name: food
|
||||
display:
|
||||
char: 'f'
|
||||
description:
|
||||
- Food from the cart
|
||||
properties: [known, portable]
|
||||
- name: empty cart
|
||||
display:
|
||||
attr: copper
|
||||
char: 'e'
|
||||
description:
|
||||
- Food cart
|
||||
properties: [known, pushable]
|
||||
- name: full cart
|
||||
display:
|
||||
attr: gold
|
||||
char: 'f'
|
||||
description:
|
||||
- Food cart
|
||||
properties: [known, pushable]
|
||||
recipes:
|
||||
- in:
|
||||
- [1, empty cart]
|
||||
- [1, empty cart]
|
||||
out:
|
||||
- [1, full cart]
|
||||
- [1, full cart]
|
||||
required:
|
||||
- [1, spatula]
|
||||
- [1, spatula]
|
||||
- in:
|
||||
- [1, full cart]
|
||||
- [1, full cart]
|
||||
out:
|
||||
- [1, empty cart]
|
||||
- [1, food]
|
||||
- [1, empty cart]
|
||||
- [1, food]
|
||||
required:
|
||||
- [1, fork]
|
||||
- [1, fork]
|
||||
known: [boulder, bitcoin]
|
||||
world:
|
||||
dsl: |
|
||||
|
@ -58,9 +58,7 @@ robots:
|
||||
run "scenarios/Challenges/_friend/cat.sw"
|
||||
objectives:
|
||||
- goal:
|
||||
- There's a cat wandering around in the field. Bring it back to
|
||||
your base. If you give it something it likes, perhaps you can
|
||||
get it to follow you.
|
||||
- There's a cat wandering around in the field. Bring it back to your base. If you give it something it likes, perhaps you can get it to follow you.
|
||||
condition: |
|
||||
c <- robotNamed "cat";
|
||||
catLoc <- as c {whereami};
|
||||
@ -75,7 +73,6 @@ entities:
|
||||
description:
|
||||
- A smelly fish. Rather unappetizing to a robot.
|
||||
properties: [known, portable]
|
||||
|
||||
known: [fish]
|
||||
seed: 0
|
||||
world:
|
||||
|
@ -126,7 +126,7 @@ recipes:
|
||||
required:
|
||||
- [1, drill]
|
||||
solution: |
|
||||
run "scenarios/Challenges/_gopher/solution.sw"
|
||||
run "scenarios/Challenges/_gopher/solution.sw"
|
||||
known: []
|
||||
world:
|
||||
dsl: |
|
||||
|
@ -249,17 +249,17 @@ entities:
|
||||
properties: [known, unwalkable]
|
||||
recipes:
|
||||
- in:
|
||||
- [181, "pellet"]
|
||||
- [181, "pellet"]
|
||||
out:
|
||||
- [1, "den key"]
|
||||
- [1, "den key"]
|
||||
- in:
|
||||
- [1, "den key"]
|
||||
- [1, "gate"]
|
||||
- [1, "den key"]
|
||||
- [1, "gate"]
|
||||
out:
|
||||
- [1, "den key"]
|
||||
- [1, "den key"]
|
||||
required:
|
||||
- [1, drill]
|
||||
solution:
|
||||
- [1, drill]
|
||||
solution: |
|
||||
run "scenarios/Challenges/_hackman/solution.sw"
|
||||
known: []
|
||||
seed: 0
|
||||
|
@ -4,10 +4,8 @@ author: Ondřej Šebek and Brent Yorgey
|
||||
description: The classic Towers of Hanoi puzzle with three disks.
|
||||
objectives:
|
||||
- goal:
|
||||
- Move all the numbers (traditionally, "disks") from the
|
||||
left column to the right column.
|
||||
- You may only pick up one disk at a time, and you may never
|
||||
place a larger disk on top of a smaller one.
|
||||
- Move all the numbers (traditionally, "disks") from the left column to the right column.
|
||||
- You may only pick up one disk at a time, and you may never place a larger disk on top of a smaller one.
|
||||
condition: |
|
||||
teleport self (2,-1);
|
||||
x <- ishere "one";
|
||||
@ -35,17 +33,17 @@ robots:
|
||||
- scanner
|
||||
- ADT calculator
|
||||
- name: invariant
|
||||
dir: [0,0]
|
||||
dir: [0, 0]
|
||||
system: true
|
||||
devices:
|
||||
- logger
|
||||
- logger
|
||||
inventory:
|
||||
- [1, one]
|
||||
- [1, two]
|
||||
- [1, three]
|
||||
- [1, blocked one]
|
||||
- [1, blocked two]
|
||||
- [1, blocked three]
|
||||
- [1, one]
|
||||
- [1, two]
|
||||
- [1, three]
|
||||
- [1, blocked one]
|
||||
- [1, blocked two]
|
||||
- [1, blocked three]
|
||||
program: |
|
||||
// if
|
||||
// 0. I stand on locked X
|
||||
@ -62,12 +60,12 @@ robots:
|
||||
// - lock X
|
||||
run "scenarios/Challenges/_hanoi/hanoi-invariant.sw"
|
||||
- name: increasing
|
||||
dir: [0,0]
|
||||
dir: [0, 0]
|
||||
system: true
|
||||
inventory:
|
||||
- [1, OK]
|
||||
- [1, OK]
|
||||
devices:
|
||||
- logger
|
||||
- logger
|
||||
program: |
|
||||
// if
|
||||
// 0. all (but max 3) disks in my column are sorted
|
||||
@ -77,13 +75,13 @@ robots:
|
||||
// - try to grab "OK"
|
||||
run "scenarios/Challenges/_hanoi/hanoi-increasing.sw"
|
||||
- name: count
|
||||
dir: [0,0]
|
||||
dir: [0, 0]
|
||||
system: true
|
||||
inventory:
|
||||
- [1, two]
|
||||
- [0, three]
|
||||
- [1, two]
|
||||
- [0, three]
|
||||
devices:
|
||||
- logger
|
||||
- logger
|
||||
program: |
|
||||
// count all entities placed in columns
|
||||
// the final count should be either 2 or 3
|
||||
@ -95,49 +93,49 @@ entities:
|
||||
char: '┴'
|
||||
attr: entity
|
||||
description:
|
||||
- A bottom tee wall.
|
||||
- A bottom tee wall.
|
||||
properties: [unwalkable]
|
||||
- name: three
|
||||
display:
|
||||
char: '3'
|
||||
attr: gold
|
||||
description:
|
||||
- A disk of radius 3.
|
||||
- A disk of radius 3.
|
||||
properties: [portable]
|
||||
- name: two
|
||||
display:
|
||||
char: '2'
|
||||
attr: gold
|
||||
description:
|
||||
- A disk of radius 2.
|
||||
- A disk of radius 2.
|
||||
properties: [portable]
|
||||
- name: one
|
||||
display:
|
||||
char: '1'
|
||||
attr: gold
|
||||
description:
|
||||
- A disk of radius 1.
|
||||
- A disk of radius 1.
|
||||
properties: [portable]
|
||||
- name: blocked one
|
||||
display:
|
||||
char: '1'
|
||||
attr: entity
|
||||
description:
|
||||
- A disk of radius 1.
|
||||
- A disk of radius 1.
|
||||
properties: [unwalkable]
|
||||
- name: blocked two
|
||||
display:
|
||||
char: '2'
|
||||
attr: entity
|
||||
description:
|
||||
- A disk of radius 2.
|
||||
- A disk of radius 2.
|
||||
properties: [unwalkable]
|
||||
- name: blocked three
|
||||
display:
|
||||
char: '3'
|
||||
attr: entity
|
||||
description:
|
||||
- A disk of radius 3.
|
||||
- A disk of radius 3.
|
||||
properties: [unwalkable]
|
||||
- name: OK
|
||||
display:
|
||||
@ -174,7 +172,6 @@ world:
|
||||
'.': [stone, null, invariant]
|
||||
'^': [grass, null, increasing]
|
||||
'X': [grass, three, count]
|
||||
|
||||
upperleft: [-3, 1]
|
||||
map: |
|
||||
┌─────┐
|
||||
|
@ -70,7 +70,7 @@ robots:
|
||||
program: |
|
||||
run "scenarios/Challenges/_ice-cream/customer.sw"
|
||||
solution: |
|
||||
run "scenarios/Challenges/_ice-cream/solution.sw"
|
||||
run "scenarios/Challenges/_ice-cream/solution.sw"
|
||||
entities:
|
||||
- name: scoop
|
||||
display:
|
||||
|
@ -96,7 +96,7 @@ robots:
|
||||
program: |
|
||||
run "scenarios/Challenges/_lights-out/assistant.sw";
|
||||
solution: |
|
||||
run "scenarios/Challenges/_lights-out/solution.sw"
|
||||
run "scenarios/Challenges/_lights-out/solution.sw"
|
||||
entities:
|
||||
- name: pending-off
|
||||
display:
|
||||
@ -159,4 +159,3 @@ world:
|
||||
.xxxxx.
|
||||
.xxxxx.
|
||||
z......
|
||||
|
||||
|
@ -56,7 +56,7 @@ robots:
|
||||
program: |
|
||||
run "scenarios/Challenges/_maypole/monitor.sw"
|
||||
solution: |
|
||||
run "scenarios/Challenges/_maypole/solution.sw"
|
||||
run "scenarios/Challenges/_maypole/solution.sw"
|
||||
entities:
|
||||
- name: dizzy
|
||||
display:
|
||||
|
@ -18,7 +18,7 @@ solution: |
|
||||
turn back; move;move;move; w10; move;move;move; grab
|
||||
robots:
|
||||
- name: base
|
||||
loc: [3,0]
|
||||
loc: [3, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- treads
|
||||
@ -29,8 +29,8 @@ robots:
|
||||
- [0, lambda]
|
||||
- name: portkey1
|
||||
system: true
|
||||
loc: [0,0]
|
||||
dir: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: [0, 0]
|
||||
program: |
|
||||
def forever = \prog. wait 10; prog; forever prog; end;
|
||||
destRob <- robotNamed "portkey2";
|
||||
@ -42,8 +42,8 @@ robots:
|
||||
);
|
||||
- name: portkey2
|
||||
system: true
|
||||
loc: [16,0]
|
||||
dir: [0,0]
|
||||
loc: [16, 0]
|
||||
dir: [0, 0]
|
||||
program: |
|
||||
def forever = \prog. wait 10; prog; forever prog; end;
|
||||
wait 5;
|
||||
|
@ -61,7 +61,7 @@ robots:
|
||||
end;
|
||||
start;
|
||||
solution: |
|
||||
run "scenarios/Challenges/_wave/solution.sw"
|
||||
run "scenarios/Challenges/_wave/solution.sw"
|
||||
entities: []
|
||||
known: [wavy water, water, bitcoin]
|
||||
world:
|
||||
|
@ -7,9 +7,7 @@ seed: 2
|
||||
creative: false
|
||||
objectives:
|
||||
- goal:
|
||||
- Use the `drill` command (e.g. `drill down` when on top of the
|
||||
intended letter) to mark the sequence of letters that
|
||||
spells `C`{=entity}`O`{=entity}`W`{=entity} within the designated playfield.
|
||||
- Use the `drill` command (e.g. `drill down` when on top of the intended letter) to mark the sequence of letters that spells `C`{=entity}`O`{=entity}`W`{=entity} within the designated playfield.
|
||||
- |
|
||||
The sequence may appear horizontally in either the
|
||||
leftward or rightward direction,
|
||||
@ -199,7 +197,6 @@ objectives:
|
||||
end;
|
||||
|
||||
as base {checkSoln};
|
||||
|
||||
robots:
|
||||
- name: base
|
||||
display:
|
||||
|
@ -7,7 +7,7 @@ robots:
|
||||
display:
|
||||
attr: robot
|
||||
char: 'Ω'
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- treads
|
||||
@ -63,7 +63,7 @@ world:
|
||||
palette:
|
||||
'o': [ice, rock, cell]
|
||||
'.': [ice, null, cell]
|
||||
upperleft: [1,-1]
|
||||
upperleft: [1, -1]
|
||||
map: |
|
||||
..............................
|
||||
..............................
|
||||
|
@ -53,7 +53,6 @@ robots:
|
||||
- [1, bit (0)]
|
||||
program: |
|
||||
run "scenarios/Fun/_logo-burst/coordinator.sw"
|
||||
|
||||
known: [boulder, tree, water, wavy water]
|
||||
world:
|
||||
upperleft: [0, 0]
|
||||
|
@ -1,15 +1,14 @@
|
||||
version: 1
|
||||
name: Curry
|
||||
author: Brent Yorgey
|
||||
description: Race to make a bowl of `curry`{=entity} as quickly as possible.
|
||||
See the Swarm wiki for more information on Swarm speedrunning.
|
||||
description: Race to make a bowl of `curry`{=entity} as quickly as possible. See the Swarm wiki for more information on Swarm speedrunning.
|
||||
objectives:
|
||||
- goal:
|
||||
- Make a bowl of curry as quickly as possible!
|
||||
condition: as base {has "curry"}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: north
|
||||
heavy: true
|
||||
display:
|
||||
|
@ -1,15 +1,14 @@
|
||||
version: 1
|
||||
name: Forester
|
||||
author: Brent Yorgey
|
||||
description: Race to harvest 1024 `tree`{=entity}s as quickly as possible.
|
||||
See the Swarm wiki for more information on Swarm speedrunning.
|
||||
description: Race to harvest 1024 `tree`{=entity}s as quickly as possible. See the Swarm wiki for more information on Swarm speedrunning.
|
||||
objectives:
|
||||
- goal:
|
||||
- Harvest 1024 `tree`{=entity}s as quickly as possible!
|
||||
condition: as base {n <- count "tree"; return (n >= 1024)}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: north
|
||||
heavy: true
|
||||
display:
|
||||
|
@ -1,15 +1,14 @@
|
||||
version: 1
|
||||
name: Mithril
|
||||
author: Brent Yorgey
|
||||
description: Race to mine some `mithril`{=entity}.
|
||||
See the Swarm wiki for more information on Swarm speedrunning.
|
||||
description: Race to mine some `mithril`{=entity}. See the Swarm wiki for more information on Swarm speedrunning.
|
||||
objectives:
|
||||
- goal:
|
||||
- Mine some `mithril`{=entity} as quickly as possible!
|
||||
condition: as base {has "mithril"}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: north
|
||||
heavy: true
|
||||
display:
|
||||
|
@ -28,34 +28,34 @@ robots:
|
||||
- treads
|
||||
- welder
|
||||
entities:
|
||||
- name: fence
|
||||
display:
|
||||
attr: wood
|
||||
char: '#'
|
||||
description:
|
||||
- Impassable barrier
|
||||
properties: [known, unwalkable]
|
||||
- name: gate key
|
||||
display:
|
||||
attr: iron
|
||||
char: 'k'
|
||||
description:
|
||||
- Can open a closed gate
|
||||
properties: [known, portable]
|
||||
- name: closed gate
|
||||
display:
|
||||
attr: wood
|
||||
char: '|'
|
||||
description:
|
||||
- Cannot pass through this
|
||||
properties: [known, unwalkable]
|
||||
- name: open gate
|
||||
display:
|
||||
attr: wood
|
||||
char: '/'
|
||||
description:
|
||||
- Can pass through this
|
||||
properties: [known]
|
||||
- name: fence
|
||||
display:
|
||||
attr: wood
|
||||
char: '#'
|
||||
description:
|
||||
- Impassable barrier
|
||||
properties: [known, unwalkable]
|
||||
- name: gate key
|
||||
display:
|
||||
attr: iron
|
||||
char: 'k'
|
||||
description:
|
||||
- Can open a closed gate
|
||||
properties: [known, portable]
|
||||
- name: closed gate
|
||||
display:
|
||||
attr: wood
|
||||
char: '|'
|
||||
description:
|
||||
- Cannot pass through this
|
||||
properties: [known, unwalkable]
|
||||
- name: open gate
|
||||
display:
|
||||
attr: wood
|
||||
char: '/'
|
||||
description:
|
||||
- Can pass through this
|
||||
properties: [known]
|
||||
recipes:
|
||||
- in:
|
||||
- [1, closed gate]
|
||||
@ -74,8 +74,8 @@ world:
|
||||
'k': [grass, gate key]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
......
|
||||
..###.
|
||||
Ωk|*#.
|
||||
..###.
|
||||
......
|
||||
......
|
||||
..###.
|
||||
Ωk|*#.
|
||||
..###.
|
||||
......
|
||||
|
@ -40,6 +40,6 @@ world:
|
||||
palette:
|
||||
'>': [grass, null, base]
|
||||
'Å': [stone, copper mine]
|
||||
upperleft: [0,0]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
>Å
|
||||
|
@ -8,7 +8,6 @@ creative: false
|
||||
attrs:
|
||||
- name: robotWithBackground
|
||||
bg: "#880088"
|
||||
|
||||
- name: rainbow1
|
||||
fg: "#ffadad"
|
||||
- name: rainbow2
|
||||
@ -23,7 +22,6 @@ attrs:
|
||||
fg: "#a0c4ff"
|
||||
- name: rainbow7
|
||||
fg: "#bdb2ff"
|
||||
|
||||
- name: rainbow1bg
|
||||
bg: "#ffadad"
|
||||
- name: rainbow2bg
|
||||
@ -38,7 +36,6 @@ attrs:
|
||||
bg: "#a0c4ff"
|
||||
- name: rainbow7bg
|
||||
bg: "#bdb2ff"
|
||||
|
||||
- name: redOnYellow
|
||||
fg: "#ff0000"
|
||||
bg: "#ffff00"
|
||||
@ -115,7 +112,6 @@ entities:
|
||||
description:
|
||||
- c7
|
||||
properties: [known]
|
||||
|
||||
- name: color1bg
|
||||
display:
|
||||
char: ' '
|
||||
@ -165,7 +161,6 @@ entities:
|
||||
description:
|
||||
- c7bg
|
||||
properties: [known]
|
||||
|
||||
- name: color1f
|
||||
display:
|
||||
char: '█'
|
||||
@ -286,7 +281,6 @@ world:
|
||||
'Ω': [blank, null, base]
|
||||
'α': [blank, null, companion]
|
||||
'β': [blank, null, companion2]
|
||||
|
||||
'.': [blank]
|
||||
'1': [blank, color1]
|
||||
'2': [blank, color2]
|
||||
@ -295,7 +289,6 @@ world:
|
||||
'5': [blank, color5]
|
||||
'6': [blank, color6]
|
||||
'7': [blank, color7]
|
||||
|
||||
'T': [blank, color1bg]
|
||||
'U': [blank, color2bg]
|
||||
'V': [blank, color3bg]
|
||||
@ -303,7 +296,6 @@ world:
|
||||
'X': [blank, color5bg]
|
||||
'Y': [blank, color6bg]
|
||||
'Z': [blank, color7bg]
|
||||
|
||||
'a': [blank, color1f]
|
||||
'b': [blank, color2f]
|
||||
'c': [blank, color3f]
|
||||
@ -311,7 +303,6 @@ world:
|
||||
'e': [blank, color5f]
|
||||
'f': [blank, color6f]
|
||||
'g': [blank, color7f]
|
||||
|
||||
'y': [blank, blueBackround]
|
||||
'z': [blank, greenForeground]
|
||||
'R': [blank, redYellow]
|
||||
|
@ -41,12 +41,12 @@ world:
|
||||
'T': [grass, tree]
|
||||
upperleft: [-4, 4]
|
||||
map: |
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
......T..
|
||||
.........
|
||||
.........
|
||||
.Ω.......
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
......T..
|
||||
.........
|
||||
.........
|
||||
.Ω.......
|
||||
.........
|
||||
|
@ -28,31 +28,31 @@ world:
|
||||
'x': [grass, gumball machine]
|
||||
upperleft: [-1, 2]
|
||||
map: |
|
||||
...
|
||||
.x.
|
||||
.Ω.
|
||||
...
|
||||
...
|
||||
.x.
|
||||
.Ω.
|
||||
...
|
||||
entities:
|
||||
- name: gumball machine
|
||||
display:
|
||||
attr: red
|
||||
char: 'G'
|
||||
description:
|
||||
- Yields a gumball when drilled
|
||||
- Yields a gumball when drilled
|
||||
properties: [unwalkable, known]
|
||||
- name: gumball
|
||||
display:
|
||||
attr: blue
|
||||
char: 'o'
|
||||
description:
|
||||
- Dispensed from a gumball machine
|
||||
- Dispensed from a gumball machine
|
||||
properties: [portable]
|
||||
recipes:
|
||||
- in:
|
||||
- [1, gumball machine]
|
||||
- [1, gumball machine]
|
||||
out:
|
||||
- [1, gumball machine]
|
||||
- [1, gumball]
|
||||
- [1, gumball machine]
|
||||
- [1, gumball]
|
||||
required:
|
||||
- [1, drill]
|
||||
- [1, drill]
|
||||
time: 1
|
||||
|
@ -39,9 +39,9 @@ world:
|
||||
'T': [grass, tree]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
.........
|
||||
......T..
|
||||
.........
|
||||
.........
|
||||
.Ω.......
|
||||
.........
|
||||
.........
|
||||
......T..
|
||||
.........
|
||||
.........
|
||||
.Ω.......
|
||||
.........
|
||||
|
@ -45,6 +45,6 @@ world:
|
||||
'.': [grass, erase]
|
||||
upperleft: [4, -1]
|
||||
map: |
|
||||
J........
|
||||
.Ω.......
|
||||
.........
|
||||
J........
|
||||
.Ω.......
|
||||
.........
|
||||
|
@ -48,9 +48,9 @@ world:
|
||||
'T': [grass, tree]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
.........
|
||||
......T..
|
||||
.........
|
||||
.........
|
||||
.Ω.......
|
||||
.........
|
||||
.........
|
||||
......T..
|
||||
.........
|
||||
.........
|
||||
.Ω.......
|
||||
.........
|
||||
|
@ -80,10 +80,10 @@ world:
|
||||
'T': [grass, tree]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
.........
|
||||
..o.i.b..
|
||||
.........
|
||||
..T...*..
|
||||
.........
|
||||
Ω.......@
|
||||
.........
|
||||
.........
|
||||
..o.i.b..
|
||||
.........
|
||||
..T...*..
|
||||
.........
|
||||
Ω.......@
|
||||
.........
|
||||
|
@ -8,9 +8,9 @@ objectives:
|
||||
condition: |
|
||||
as base {has "tree"}
|
||||
prerequisite:
|
||||
logic:
|
||||
not:
|
||||
id: grab_flower
|
||||
logic:
|
||||
not:
|
||||
id: grab_flower
|
||||
- id: grab_flower
|
||||
teaser: Grab flower
|
||||
goal:
|
||||
@ -68,14 +68,14 @@ robots:
|
||||
- treads
|
||||
- turbocharger
|
||||
entities:
|
||||
- name: turbocharger
|
||||
display:
|
||||
attr: silver
|
||||
char: 't'
|
||||
description:
|
||||
- Allows one to "stride" across multiple cells
|
||||
properties: [known, portable]
|
||||
capabilities: [movemultiple]
|
||||
- name: turbocharger
|
||||
display:
|
||||
attr: silver
|
||||
char: 't'
|
||||
description:
|
||||
- Allows one to "stride" across multiple cells
|
||||
properties: [known, portable]
|
||||
capabilities: [movemultiple]
|
||||
known: [tree, flower, boulder, water]
|
||||
world:
|
||||
palette:
|
||||
@ -87,16 +87,16 @@ world:
|
||||
'w': [grass, water]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
..............
|
||||
......*.......
|
||||
..............
|
||||
......w.......
|
||||
..............
|
||||
...www........
|
||||
.*.wwwΩ....T..
|
||||
...www@.......
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
......*.......
|
||||
..............
|
||||
..............
|
||||
......*.......
|
||||
..............
|
||||
......w.......
|
||||
..............
|
||||
...www........
|
||||
.*.wwwΩ....T..
|
||||
...www@.......
|
||||
..............
|
||||
..............
|
||||
..............
|
||||
......*.......
|
||||
..............
|
||||
|
@ -42,13 +42,13 @@ robots:
|
||||
attr: robot
|
||||
invisible: true
|
||||
entities:
|
||||
- name: crate
|
||||
display:
|
||||
attr: wood
|
||||
char: '▪'
|
||||
description:
|
||||
- Pushable crate
|
||||
properties: [known, portable, unwalkable]
|
||||
- name: crate
|
||||
display:
|
||||
attr: wood
|
||||
char: '▪'
|
||||
description:
|
||||
- Pushable crate
|
||||
properties: [known, portable, unwalkable]
|
||||
known: [tree, flower, boulder, water]
|
||||
world:
|
||||
palette:
|
||||
@ -61,8 +61,8 @@ world:
|
||||
'x': [grass, crate]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
..............
|
||||
......w.......
|
||||
.....@Ωx.x....
|
||||
......*..j....
|
||||
......*.......
|
||||
..............
|
||||
......w.......
|
||||
.....@Ωx.x....
|
||||
......*..j....
|
||||
......*.......
|
||||
|
@ -4,8 +4,7 @@ creative: false
|
||||
description: Stop a robot using halt
|
||||
objectives:
|
||||
- goal:
|
||||
- The robot next to you is holding a flower, but is stuck in an
|
||||
infinite loop. Get the flower!
|
||||
- The robot next to you is holding a flower, but is stuck in an infinite loop. Get the flower!
|
||||
condition: |
|
||||
as base {has "flower"}
|
||||
solution: |
|
||||
@ -47,10 +46,10 @@ world:
|
||||
'.': [grass]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
...^Ω....
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
...^Ω....
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
|
@ -44,7 +44,7 @@ world:
|
||||
'*': [grass, flower]
|
||||
upperleft: [76, -89]
|
||||
map: |
|
||||
*.*.
|
||||
Ω*.*
|
||||
*.*.
|
||||
J*.*
|
||||
*.*.
|
||||
Ω*.*
|
||||
*.*.
|
||||
J*.*
|
||||
|
@ -7,12 +7,12 @@ objectives:
|
||||
- condition: |
|
||||
as base { n <- count "tree"; return (n >= 4) }
|
||||
goal:
|
||||
- Get 4 trees
|
||||
- Get 4 trees
|
||||
solution: |
|
||||
grab; move; grab; move; grab; move; grab
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
|
@ -6,7 +6,7 @@ objectives:
|
||||
- condition: |
|
||||
as base { n <- count "tree"; return (n == 0) }
|
||||
goal:
|
||||
- Get rid of your trees.
|
||||
- Get rid of your trees.
|
||||
solution: |
|
||||
place "tree"; move; move;
|
||||
place "tree"; move; move;
|
||||
@ -14,7 +14,7 @@ solution: |
|
||||
place "tree"
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
|
@ -6,12 +6,12 @@ objectives:
|
||||
- condition: |
|
||||
as base { n <- count "tree"; return (n == 1) }
|
||||
goal:
|
||||
- Get a tree.
|
||||
- Get a tree.
|
||||
solution: |
|
||||
grab
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
|
@ -8,22 +8,22 @@ description: |
|
||||
of ticks that they `wait`.
|
||||
objectives:
|
||||
- goal:
|
||||
- |
|
||||
`grab` the "tree".
|
||||
- |
|
||||
`grab` the "tree".
|
||||
condition: |
|
||||
as base {has "tree"}
|
||||
solution: |
|
||||
move;
|
||||
move;
|
||||
wait 10;
|
||||
x <- harvest;
|
||||
if (x == "flower") {
|
||||
turn right;
|
||||
move;
|
||||
move;
|
||||
wait 10;
|
||||
x <- harvest;
|
||||
if (x == "flower") {
|
||||
turn right;
|
||||
move;
|
||||
grab;
|
||||
} {
|
||||
return "";
|
||||
};
|
||||
grab;
|
||||
} {
|
||||
return "";
|
||||
};
|
||||
robots:
|
||||
- name: base
|
||||
dir: east
|
||||
|
@ -56,43 +56,43 @@ robots:
|
||||
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]
|
||||
- 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:
|
||||
@ -107,27 +107,27 @@ world:
|
||||
'.': [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...
|
||||
..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...
|
||||
|
@ -16,14 +16,14 @@ entities:
|
||||
attr: portal_in
|
||||
char: "o"
|
||||
description:
|
||||
- Portal entrance
|
||||
- Portal entrance
|
||||
properties: [known]
|
||||
- name: telepad exit
|
||||
display:
|
||||
attr: portal_out
|
||||
char: "o"
|
||||
description:
|
||||
- Portal exit
|
||||
- Portal exit
|
||||
properties: [known]
|
||||
robots:
|
||||
- name: base
|
||||
|
@ -4,8 +4,8 @@ description: |
|
||||
Validate proper flip/rotate of portal waypoints
|
||||
objectives:
|
||||
- goal:
|
||||
- |
|
||||
`grab` the "bitcoin"
|
||||
- |
|
||||
`grab` the "bitcoin"
|
||||
condition: |
|
||||
as base {has "bitcoin"}
|
||||
solution: |
|
||||
@ -23,14 +23,14 @@ entities:
|
||||
attr: portal_in
|
||||
char: "o"
|
||||
description:
|
||||
- Portal entrance
|
||||
- Portal entrance
|
||||
properties: [known]
|
||||
- name: telepad exit
|
||||
display:
|
||||
attr: portal_out
|
||||
char: "o"
|
||||
description:
|
||||
- Portal exit
|
||||
- Portal exit
|
||||
properties: [known]
|
||||
robots:
|
||||
- name: base
|
||||
|
@ -8,24 +8,24 @@ attrs:
|
||||
bg: "#ff5d00"
|
||||
objectives:
|
||||
- goal:
|
||||
- |
|
||||
`place` the "flower" on the white cell.
|
||||
- |
|
||||
`place` the "flower" on the white cell.
|
||||
condition: |
|
||||
j <- robotnamed "judge";
|
||||
as j {ishere "flower"}
|
||||
solution: |
|
||||
def doN = \n. \f. if (n > 0) {f; doN (n - 1) f} {}; end;
|
||||
doN 23 move;
|
||||
f <- grab;
|
||||
doN 23 move;
|
||||
place f;
|
||||
def doN = \n. \f. if (n > 0) {f; doN (n - 1) f} {}; end;
|
||||
doN 23 move;
|
||||
f <- grab;
|
||||
doN 23 move;
|
||||
place f;
|
||||
entities:
|
||||
- name: telepad entrance
|
||||
display:
|
||||
attr: portal_in
|
||||
char: "o"
|
||||
description:
|
||||
- Portal entrance
|
||||
- Portal entrance
|
||||
properties: [known]
|
||||
robots:
|
||||
- name: base
|
||||
|
@ -4,12 +4,12 @@ description: |
|
||||
Locomote backwards without access to the turn command
|
||||
objectives:
|
||||
- goal:
|
||||
- |
|
||||
`grab` the "flower".
|
||||
- |
|
||||
`grab` the "flower".
|
||||
condition: |
|
||||
as base {has "flower"}
|
||||
solution: |
|
||||
backup; backup; grab;
|
||||
backup; backup; grab;
|
||||
robots:
|
||||
- name: base
|
||||
dir: north
|
||||
|
@ -40,11 +40,11 @@ robots:
|
||||
program: |
|
||||
build {move; say (format parent)}
|
||||
solution: |
|
||||
listen; build {move; say (format parent)}
|
||||
listen; build {move; say (format parent)}
|
||||
objectives:
|
||||
- goal:
|
||||
- Check that system robots build system robots and normal robots do not.
|
||||
- This check is performed in integration tests.
|
||||
- Check that system robots build system robots and normal robots do not.
|
||||
- This check is performed in integration tests.
|
||||
condition: |
|
||||
r2 <- robotNumbered 2;
|
||||
r3 <- robotNumbered 3;
|
||||
@ -57,8 +57,8 @@ world:
|
||||
'.': [grass]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
.........
|
||||
.........
|
||||
...Ω..r..
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
.........
|
||||
...Ω..r..
|
||||
.........
|
||||
.........
|
||||
|
@ -4,8 +4,8 @@ description: |
|
||||
Surface and underground with portals.
|
||||
objectives:
|
||||
- goal:
|
||||
- |
|
||||
`place` the "flower" on the white cell.
|
||||
- |
|
||||
`place` the "flower" on the white cell.
|
||||
condition: |
|
||||
j <- robotnamed "judge";
|
||||
as j {ishere "flower"}
|
||||
@ -24,14 +24,14 @@ entities:
|
||||
attr: portal_in
|
||||
char: "o"
|
||||
description:
|
||||
- Portal entrance
|
||||
- Portal entrance
|
||||
properties: [known]
|
||||
- name: telepad exit
|
||||
display:
|
||||
attr: portal_out
|
||||
char: "o"
|
||||
description:
|
||||
- Portal exit
|
||||
- Portal exit
|
||||
properties: [known]
|
||||
robots:
|
||||
- name: base
|
||||
|
@ -15,14 +15,14 @@ entities:
|
||||
attr: portal_in
|
||||
char: "o"
|
||||
description:
|
||||
- Portal entrance
|
||||
- Portal entrance
|
||||
properties: [known]
|
||||
- name: telepad exit
|
||||
display:
|
||||
attr: portal_out
|
||||
char: "o"
|
||||
description:
|
||||
- Portal exit
|
||||
- Portal exit
|
||||
properties: [known]
|
||||
robots:
|
||||
- name: base
|
||||
|
@ -4,8 +4,8 @@ description: |
|
||||
Demonstrate that system robots can be placed in any subworld.
|
||||
objectives:
|
||||
- goal:
|
||||
- |
|
||||
`give` the "flower" to the robot underground.
|
||||
- |
|
||||
`give` the "flower" to the robot underground.
|
||||
condition: |
|
||||
j <- robotnamed "judge";
|
||||
as j {has "flower"}
|
||||
@ -24,14 +24,14 @@ entities:
|
||||
attr: portal_in
|
||||
char: "o"
|
||||
description:
|
||||
- Portal entrance
|
||||
- Portal entrance
|
||||
properties: [known]
|
||||
- name: telepad exit
|
||||
display:
|
||||
attr: portal_out
|
||||
char: "o"
|
||||
description:
|
||||
- Portal exit
|
||||
- Portal exit
|
||||
properties: [known]
|
||||
robots:
|
||||
- name: base
|
||||
|
@ -7,10 +7,10 @@ description: |
|
||||
on subworld.
|
||||
objectives:
|
||||
- goal:
|
||||
- |
|
||||
`give` the "bitcoin" to the robot in the "root" world.
|
||||
- |
|
||||
First obtain it from the robot living underground.
|
||||
- |
|
||||
`give` the "bitcoin" to the robot in the "root" world.
|
||||
- |
|
||||
First obtain it from the robot living underground.
|
||||
condition: |
|
||||
j <- robotnumbered 1;
|
||||
as j {has "bitcoin"}
|
||||
@ -29,14 +29,14 @@ entities:
|
||||
attr: portal_in
|
||||
char: "o"
|
||||
description:
|
||||
- Portal entrance
|
||||
- Portal entrance
|
||||
properties: [known]
|
||||
- name: telepad exit
|
||||
display:
|
||||
attr: portal_out
|
||||
char: "o"
|
||||
description:
|
||||
- Portal exit
|
||||
- Portal exit
|
||||
properties: [known]
|
||||
robots:
|
||||
- name: base
|
||||
|
@ -15,14 +15,14 @@ entities:
|
||||
attr: portal_in
|
||||
char: "o"
|
||||
description:
|
||||
- Portal entrance
|
||||
- Portal entrance
|
||||
properties: [known]
|
||||
- name: telepad exit
|
||||
display:
|
||||
attr: portal_out
|
||||
char: "o"
|
||||
description:
|
||||
- Portal exit
|
||||
- Portal exit
|
||||
properties: [known]
|
||||
robots:
|
||||
- name: base
|
||||
|
@ -47,7 +47,7 @@ robots:
|
||||
- transponder
|
||||
inventory:
|
||||
- [1, treads]
|
||||
program:
|
||||
program: |
|
||||
give base "treads";
|
||||
known: []
|
||||
world:
|
||||
|
@ -1,9 +1,6 @@
|
||||
version: 1
|
||||
name: Custom unwalkability
|
||||
description: The base robot cannot walk through trees.
|
||||
The scenario shall be failed if the robot
|
||||
manages to walk through the tree by moving
|
||||
three cells to the east.
|
||||
description: The base robot cannot walk through trees. The scenario shall be failed if the robot manages to walk through the tree by moving three cells to the east.
|
||||
objectives:
|
||||
- goal:
|
||||
- Get the flower
|
||||
@ -35,7 +32,7 @@ robots:
|
||||
- dictionary
|
||||
- net
|
||||
unwalkable:
|
||||
- tree
|
||||
- tree
|
||||
known: [tree, flower, bitcoin]
|
||||
world:
|
||||
palette:
|
||||
@ -47,4 +44,3 @@ world:
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
BfTb
|
||||
|
||||
|
@ -74,21 +74,21 @@ entities:
|
||||
char: '@'
|
||||
attr: rock
|
||||
description:
|
||||
- Pushable rock
|
||||
- Pushable rock
|
||||
properties: [known, unwalkable, portable]
|
||||
- name: lemon
|
||||
display:
|
||||
char: 'o'
|
||||
attr: gold
|
||||
description:
|
||||
- Sour fruit
|
||||
- Sour fruit
|
||||
properties: [known, portable]
|
||||
- name: lemonade
|
||||
display:
|
||||
char: 'c'
|
||||
attr: gold
|
||||
description:
|
||||
- Sweet drink
|
||||
- Sweet drink
|
||||
properties: [known, portable]
|
||||
recipes:
|
||||
- in:
|
||||
|
@ -116,21 +116,21 @@ entities:
|
||||
char: '@'
|
||||
attr: rock
|
||||
description:
|
||||
- Pushable rock
|
||||
- Pushable rock
|
||||
properties: [known, unwalkable, portable]
|
||||
- name: lemon
|
||||
display:
|
||||
char: 'o'
|
||||
attr: gold
|
||||
description:
|
||||
- Sour fruit
|
||||
- Sour fruit
|
||||
properties: [known, portable]
|
||||
- name: lemonade
|
||||
display:
|
||||
char: 'c'
|
||||
attr: gold
|
||||
description:
|
||||
- Sweet drink
|
||||
- Sweet drink
|
||||
properties: [known, portable]
|
||||
recipes:
|
||||
- in:
|
||||
|
@ -59,9 +59,9 @@ structures:
|
||||
'g': [stone, boulder]
|
||||
mask: '.'
|
||||
map: |
|
||||
..g
|
||||
..g
|
||||
ggg
|
||||
..g
|
||||
..g
|
||||
ggg
|
||||
known: [boulder, mountain, water]
|
||||
world:
|
||||
name: root
|
||||
|
@ -34,12 +34,12 @@ robots:
|
||||
- [50, mithril]
|
||||
- [50, cotton]
|
||||
solution: |
|
||||
move;
|
||||
place "quartz";
|
||||
move;
|
||||
place "quartz";
|
||||
move;
|
||||
place "mithril";
|
||||
move;
|
||||
place "quartz";
|
||||
move;
|
||||
place "quartz";
|
||||
move;
|
||||
place "mithril";
|
||||
structures:
|
||||
- name: donut
|
||||
structure:
|
||||
@ -78,10 +78,10 @@ structures:
|
||||
'l': [stone, copper pipe]
|
||||
'g': [stone, iron gear]
|
||||
map: |
|
||||
rllllr
|
||||
lIIIIl
|
||||
lIIIgg
|
||||
rlllgg
|
||||
rllllr
|
||||
lIIIIl
|
||||
lIIIgg
|
||||
rlllgg
|
||||
- name: precious
|
||||
recognize: [north]
|
||||
structure:
|
||||
@ -92,9 +92,9 @@ structures:
|
||||
's': [stone, silver]
|
||||
'm': [stone, mithril]
|
||||
map: |
|
||||
qgs
|
||||
gsq
|
||||
qqm
|
||||
qgs
|
||||
gsq
|
||||
qqm
|
||||
- name: smallish
|
||||
recognize: [north]
|
||||
structure:
|
||||
@ -104,8 +104,8 @@ structures:
|
||||
'm': [stone, mithril]
|
||||
'c': [stone, cotton]
|
||||
map: |
|
||||
qqm
|
||||
cqq
|
||||
qqm
|
||||
cqq
|
||||
known: [flower, log, rock, copper pipe, iron plate]
|
||||
world:
|
||||
name: root
|
||||
|
@ -42,9 +42,9 @@ structures:
|
||||
palette:
|
||||
'g': [stone, pixel (G)]
|
||||
map: |
|
||||
ggg
|
||||
ggg
|
||||
ggg
|
||||
ggg
|
||||
ggg
|
||||
ggg
|
||||
known: [pixel (G)]
|
||||
world:
|
||||
name: root
|
||||
|
@ -45,13 +45,13 @@ robots:
|
||||
inventory:
|
||||
- [3, silver]
|
||||
solution: |
|
||||
move;
|
||||
turn left;
|
||||
place "silver";
|
||||
move; move;
|
||||
place "silver";
|
||||
move; move;
|
||||
place "silver";
|
||||
move;
|
||||
turn left;
|
||||
place "silver";
|
||||
move; move;
|
||||
place "silver";
|
||||
move; move;
|
||||
place "silver";
|
||||
structures:
|
||||
- name: chessboard
|
||||
recognize: [north]
|
||||
@ -61,10 +61,10 @@ structures:
|
||||
'g': [stone, gold]
|
||||
's': [stone, silver]
|
||||
map: |
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
known: [water, gold, silver]
|
||||
world:
|
||||
name: root
|
||||
|
@ -43,12 +43,12 @@ robots:
|
||||
- [1, gold]
|
||||
- [1, silver]
|
||||
solution: |
|
||||
move;
|
||||
place "silver";
|
||||
move; move; move;
|
||||
turn left;
|
||||
move; move; move; move;
|
||||
place "gold";
|
||||
move;
|
||||
place "silver";
|
||||
move; move; move;
|
||||
turn left;
|
||||
move; move; move; move;
|
||||
place "gold";
|
||||
structures:
|
||||
- name: chessboard
|
||||
recognize: [north]
|
||||
@ -58,10 +58,10 @@ structures:
|
||||
'g': [stone, gold]
|
||||
's': [stone, silver]
|
||||
map: |
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
world:
|
||||
name: root
|
||||
dsl: |
|
||||
|
@ -52,11 +52,11 @@ structures:
|
||||
palette:
|
||||
'b': [stone, board]
|
||||
map: |
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
bbbbbbb
|
||||
known: [board]
|
||||
world:
|
||||
dsl: |
|
||||
|
@ -25,12 +25,12 @@ robots:
|
||||
- [50, mithril]
|
||||
- [50, cotton]
|
||||
solution: |
|
||||
move;
|
||||
place "quartz";
|
||||
move;
|
||||
place "quartz";
|
||||
move;
|
||||
place "mithril";
|
||||
move;
|
||||
place "quartz";
|
||||
move;
|
||||
place "quartz";
|
||||
move;
|
||||
place "mithril";
|
||||
structures:
|
||||
- name: precious
|
||||
recognize: [north]
|
||||
@ -42,9 +42,9 @@ structures:
|
||||
's': [stone, silver]
|
||||
'm': [stone, mithril]
|
||||
map: |
|
||||
qgs
|
||||
gsq
|
||||
qqm
|
||||
qgs
|
||||
gsq
|
||||
qqm
|
||||
- name: smallish
|
||||
recognize: [north]
|
||||
structure:
|
||||
@ -54,8 +54,8 @@ structures:
|
||||
'm': [stone, mithril]
|
||||
'c': [stone, cotton]
|
||||
map: |
|
||||
qqm
|
||||
cqq
|
||||
qqm
|
||||
cqq
|
||||
world:
|
||||
name: root
|
||||
dsl: |
|
||||
|
@ -82,10 +82,10 @@ structures:
|
||||
'b': [stone, board]
|
||||
mask: '.'
|
||||
map: |
|
||||
bbbb
|
||||
b..b
|
||||
b..b
|
||||
bbbb
|
||||
bbbb
|
||||
b..b
|
||||
b..b
|
||||
bbbb
|
||||
known: [board, rock]
|
||||
world:
|
||||
dsl: |
|
||||
@ -107,5 +107,3 @@ world:
|
||||
B.r...
|
||||
......
|
||||
......
|
||||
|
||||
|
||||
|
@ -32,8 +32,8 @@ robots:
|
||||
- [1, gold]
|
||||
- [1, silver]
|
||||
solution: |
|
||||
move;
|
||||
place "gold";
|
||||
move;
|
||||
place "gold";
|
||||
structures:
|
||||
- name: large
|
||||
recognize: [north]
|
||||
@ -43,9 +43,9 @@ structures:
|
||||
'g': [stone, gold]
|
||||
's': [stone, silver]
|
||||
map: |
|
||||
sss
|
||||
ggs
|
||||
ggs
|
||||
sss
|
||||
ggs
|
||||
ggs
|
||||
- name: small
|
||||
recognize: [north]
|
||||
structure:
|
||||
@ -53,8 +53,8 @@ structures:
|
||||
palette:
|
||||
'g': [stone, gold]
|
||||
map: |
|
||||
gg
|
||||
gg
|
||||
gg
|
||||
gg
|
||||
world:
|
||||
name: root
|
||||
dsl: |
|
||||
@ -66,6 +66,6 @@ world:
|
||||
'B': [grass, null, base]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
.sss
|
||||
.ggs
|
||||
B.gs
|
||||
.sss
|
||||
.ggs
|
||||
B.gs
|
||||
|
@ -33,8 +33,8 @@ robots:
|
||||
- [1, gold]
|
||||
- [1, silver]
|
||||
solution: |
|
||||
move; move; move;
|
||||
place "gold";
|
||||
move; move; move;
|
||||
place "gold";
|
||||
structures:
|
||||
- name: topleft
|
||||
recognize: [north]
|
||||
@ -44,9 +44,9 @@ structures:
|
||||
'g': [stone, gold]
|
||||
's': [stone, silver]
|
||||
map: |
|
||||
ss
|
||||
gg
|
||||
gg
|
||||
ss
|
||||
gg
|
||||
gg
|
||||
- name: bottomright
|
||||
recognize: [north]
|
||||
structure:
|
||||
@ -55,9 +55,9 @@ structures:
|
||||
'g': [stone, gold]
|
||||
's': [stone, silver]
|
||||
map: |
|
||||
gg
|
||||
gg
|
||||
ss
|
||||
gg
|
||||
gg
|
||||
ss
|
||||
world:
|
||||
name: root
|
||||
dsl: |
|
||||
@ -69,8 +69,8 @@ world:
|
||||
'B': [grass, null, base]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
..ss.
|
||||
..gg.
|
||||
B.g.g
|
||||
...gg
|
||||
...ss
|
||||
..ss.
|
||||
..gg.
|
||||
B.g.g
|
||||
...gg
|
||||
...ss
|
||||
|
@ -37,7 +37,7 @@ robots:
|
||||
inventory:
|
||||
- [1, pixel (R)]
|
||||
solution: |
|
||||
noop;
|
||||
noop;
|
||||
structures:
|
||||
- name: red_jewel
|
||||
recognize: [north]
|
||||
@ -45,18 +45,18 @@ structures:
|
||||
palette:
|
||||
'r': [stone, pixel (R)]
|
||||
map: |
|
||||
rrr
|
||||
rrr
|
||||
rrr
|
||||
rrr
|
||||
rrr
|
||||
rrr
|
||||
- name: green_jewel
|
||||
recognize: [north]
|
||||
structure:
|
||||
palette:
|
||||
'g': [stone, pixel (G)]
|
||||
map: |
|
||||
ggg
|
||||
ggg
|
||||
ggg
|
||||
ggg
|
||||
ggg
|
||||
ggg
|
||||
known: [pixel (R), pixel (G)]
|
||||
world:
|
||||
name: root
|
||||
|
@ -31,9 +31,9 @@ robots:
|
||||
- [1, gold]
|
||||
- [1, silver]
|
||||
solution: |
|
||||
move;
|
||||
place "silver";
|
||||
grab;
|
||||
move;
|
||||
place "silver";
|
||||
grab;
|
||||
structures:
|
||||
- name: chessboard
|
||||
recognize: [north]
|
||||
@ -43,10 +43,10 @@ structures:
|
||||
'g': [stone, gold]
|
||||
's': [stone, silver]
|
||||
map: |
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
gsgs
|
||||
sgsg
|
||||
world:
|
||||
name: root
|
||||
dsl: |
|
||||
|
@ -49,9 +49,9 @@ robots:
|
||||
- [1, pixel (G)]
|
||||
- [1, pixel (B)]
|
||||
solution: |
|
||||
move; move; move;
|
||||
swap "pixel (G)";
|
||||
swap "pixel (B)";
|
||||
move; move; move;
|
||||
swap "pixel (G)";
|
||||
swap "pixel (B)";
|
||||
structures:
|
||||
- name: red_jewel
|
||||
recognize: [north]
|
||||
@ -62,11 +62,11 @@ structures:
|
||||
's': [stone, silver]
|
||||
'j': [stone, pixel (R)]
|
||||
map: |
|
||||
ggggg
|
||||
gsssg
|
||||
gsjsg
|
||||
gsssg
|
||||
ggggg
|
||||
ggggg
|
||||
gsssg
|
||||
gsjsg
|
||||
gsssg
|
||||
ggggg
|
||||
- name: green_jewel
|
||||
recognize: [north]
|
||||
structure:
|
||||
@ -76,11 +76,11 @@ structures:
|
||||
's': [stone, silver]
|
||||
'j': [stone, pixel (G)]
|
||||
map: |
|
||||
ggggg
|
||||
gsssg
|
||||
gsjsg
|
||||
gsssg
|
||||
ggggg
|
||||
ggggg
|
||||
gsssg
|
||||
gsjsg
|
||||
gsssg
|
||||
ggggg
|
||||
- name: blue_jewel
|
||||
recognize: [north]
|
||||
structure:
|
||||
@ -90,11 +90,11 @@ structures:
|
||||
's': [stone, silver]
|
||||
'j': [stone, pixel (B)]
|
||||
map: |
|
||||
ggggg
|
||||
gsssg
|
||||
gsjsg
|
||||
gsssg
|
||||
ggggg
|
||||
ggggg
|
||||
gsssg
|
||||
gsjsg
|
||||
gsssg
|
||||
ggggg
|
||||
known: [gold, silver, pixel (R), pixel (G), pixel (B)]
|
||||
world:
|
||||
name: root
|
||||
|
@ -15,7 +15,7 @@ robots:
|
||||
- name: base
|
||||
dir: east
|
||||
solution: |
|
||||
noop;
|
||||
noop;
|
||||
structures:
|
||||
- name: tee
|
||||
recognize: [north, south, east, west]
|
||||
|
@ -20,10 +20,10 @@ robots:
|
||||
inventory:
|
||||
- [4, flower]
|
||||
solution: |
|
||||
move; move;
|
||||
turn right;
|
||||
move; move;
|
||||
place "flower";
|
||||
move; move;
|
||||
turn right;
|
||||
move; move;
|
||||
place "flower";
|
||||
structures:
|
||||
- name: tee
|
||||
recognize: [north, south, east, west]
|
||||
|
@ -78,40 +78,40 @@ entities:
|
||||
attr: red
|
||||
char: 'S'
|
||||
description:
|
||||
- Reads the 'tag' of an item
|
||||
- Reads the 'tag' of an item
|
||||
properties: [portable]
|
||||
capabilities: [hastag, tagmembers]
|
||||
- name: canteloupe
|
||||
display:
|
||||
char: 'c'
|
||||
description:
|
||||
- Melon
|
||||
- Melon
|
||||
tags: [edible, fruit]
|
||||
properties: [portable]
|
||||
- name: mushroom
|
||||
display:
|
||||
char: 'm'
|
||||
description:
|
||||
- Nature's tiny umbrella.
|
||||
- Nature's tiny umbrella.
|
||||
tags: [edible, fungus]
|
||||
properties: [portable]
|
||||
- name: gravel
|
||||
display:
|
||||
char: 'g'
|
||||
description:
|
||||
- Crushed rock
|
||||
- Crushed rock
|
||||
properties: [portable]
|
||||
- name: strawberry
|
||||
display:
|
||||
char: 's'
|
||||
description:
|
||||
- Just ripe
|
||||
- Just ripe
|
||||
tags: [edible, fruit]
|
||||
- name: peach
|
||||
display:
|
||||
char: 'g'
|
||||
description:
|
||||
- Just ripe
|
||||
- Just ripe
|
||||
tags: [edible, fruit]
|
||||
properties: [portable]
|
||||
world:
|
||||
|
@ -36,13 +36,13 @@ robots:
|
||||
attr: robot
|
||||
invisible: true
|
||||
entities:
|
||||
- name: crate
|
||||
display:
|
||||
attr: wood
|
||||
char: 'c'
|
||||
description:
|
||||
- Pushable crate
|
||||
properties: [known, pushable]
|
||||
- name: crate
|
||||
display:
|
||||
attr: wood
|
||||
char: 'c'
|
||||
description:
|
||||
- Pushable crate
|
||||
properties: [known, pushable]
|
||||
known: [water]
|
||||
world:
|
||||
dsl: |
|
||||
@ -54,4 +54,4 @@ world:
|
||||
'x': [grass, crate]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
Ωxxj
|
||||
Ωxxj
|
||||
|
@ -18,7 +18,7 @@ solution: |
|
||||
build {require "boat"; move; move}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- 3D printer
|
||||
|
@ -18,7 +18,7 @@ solution: |
|
||||
build {require "boat"; move; move}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
@ -46,7 +46,7 @@ entities:
|
||||
attr: water
|
||||
char: ' '
|
||||
description:
|
||||
- An infinite ocean of water.
|
||||
- An infinite ocean of water.
|
||||
properties: [known, portable, growable, liquid]
|
||||
growth: [0,0]
|
||||
growth: [0, 0]
|
||||
yields: water
|
||||
|
@ -17,7 +17,7 @@ solution: |
|
||||
build {require "boat"; move; require "boat"; move}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- 3D printer
|
||||
|
@ -17,7 +17,7 @@ solution: |
|
||||
build { log "hi"; require 5 "rock"; mp; mp; mp; mp }
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- 3D printer
|
||||
|
@ -15,7 +15,7 @@ solution: |
|
||||
build { require 5 "rock"; move; place "rock"; move; place "rock" }
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- 3D printer
|
||||
|
@ -31,7 +31,7 @@ solution: |
|
||||
reprogram fred {require "boat"; require "metal drill"; move; move}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- 3D printer
|
||||
|
@ -31,7 +31,7 @@ solution: |
|
||||
reprogram fred {require "boat"; require "metal drill"; move; require 3 "rock"; move; require 5 "rock"}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- 3D printer
|
||||
|
@ -72,56 +72,47 @@ entities:
|
||||
attr: copper'
|
||||
char: 'A'
|
||||
description:
|
||||
- A place in the mountains where raw copper ore can be mined.
|
||||
As it is hidden inside a mountain, a tunnel needs to be
|
||||
first drilled through, so that the vein becomes accessible.
|
||||
- A place in the mountains where raw copper ore can be mined. As it is hidden inside a mountain, a tunnel needs to be first drilled through, so that the vein becomes accessible.
|
||||
properties: [unwalkable]
|
||||
|
||||
- name: iron vein
|
||||
display:
|
||||
attr: iron'
|
||||
char: 'A'
|
||||
description:
|
||||
- A place in the mountains where raw iron ore can be mined.
|
||||
As it is hidden inside a mountain, a tunnel needs to be
|
||||
first drilled through, so that the vein becomes accessible.
|
||||
- A place in the mountains where raw iron ore can be mined. As it is hidden inside a mountain, a tunnel needs to be first drilled through, so that the vein becomes accessible.
|
||||
properties: [unwalkable]
|
||||
|
||||
recipes:
|
||||
## TOY DRILL
|
||||
- in:
|
||||
- [1, copper vein]
|
||||
- [1, copper vein]
|
||||
out:
|
||||
- [1, copper mine]
|
||||
- [1, copper ore]
|
||||
- [1, copper mine]
|
||||
- [1, copper ore]
|
||||
required:
|
||||
- [1, drill]
|
||||
- [1, drill]
|
||||
time: 42
|
||||
|
||||
- in:
|
||||
- [1, iron vein]
|
||||
- [1, iron vein]
|
||||
out:
|
||||
- [1, iron mine]
|
||||
- [1, iron ore]
|
||||
- [1, iron mine]
|
||||
- [1, iron ore]
|
||||
required:
|
||||
- [1, drill]
|
||||
- [1, drill]
|
||||
time: 64
|
||||
|
||||
## METAL DRILL
|
||||
- in:
|
||||
- [1, copper vein]
|
||||
- [1, copper vein]
|
||||
out:
|
||||
- [1, copper mine]
|
||||
- [1, copper ore]
|
||||
- [1, copper mine]
|
||||
- [1, copper ore]
|
||||
required:
|
||||
- [1, metal drill]
|
||||
- [1, metal drill]
|
||||
time: 6
|
||||
|
||||
- in:
|
||||
- [1, iron vein]
|
||||
- [1, iron vein]
|
||||
out:
|
||||
- [1, iron mine]
|
||||
- [1, iron ore]
|
||||
- [1, iron mine]
|
||||
- [1, iron ore]
|
||||
required:
|
||||
- [1, metal drill]
|
||||
- [1, metal drill]
|
||||
time: 7
|
||||
|
@ -30,7 +30,7 @@ solution: |
|
||||
place "detonator";
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- treads
|
||||
|
@ -10,12 +10,12 @@ objectives:
|
||||
- condition: |
|
||||
t <- time; return (t == 2)
|
||||
goal:
|
||||
- |
|
||||
This is a dummy condition that just ensures the base has had
|
||||
time to run the problematic `build` command. The scenario
|
||||
*should* generate an error message; what we really care about is
|
||||
whether the generated error message is correct, which is checked
|
||||
in test/integration/Main.hs .
|
||||
- |
|
||||
This is a dummy condition that just ensures the base has had
|
||||
time to run the problematic `build` command. The scenario
|
||||
*should* generate an error message; what we really care about is
|
||||
whether the generated error message is correct, which is checked
|
||||
in test/integration/Main.hs .
|
||||
solution: |
|
||||
build {move; turn right; loc <- whereami}
|
||||
robots:
|
||||
@ -31,7 +31,7 @@ world:
|
||||
palette:
|
||||
'Ω': [grass, null, base]
|
||||
'.': [grass]
|
||||
upperleft: [0,1]
|
||||
upperleft: [0, 1]
|
||||
map: |
|
||||
.
|
||||
Ω
|
||||
|
@ -15,20 +15,19 @@ objectives:
|
||||
botAlive <- isAlive "bot";
|
||||
return (baseAlive && not botAlive);
|
||||
} { return false; }
|
||||
|
||||
solution: |
|
||||
log "start";
|
||||
wait 5;
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- treads
|
||||
- logger
|
||||
program: "move"
|
||||
- name: bot
|
||||
loc: [0,-1]
|
||||
loc: [0, -1]
|
||||
dir: east
|
||||
devices:
|
||||
- treads
|
||||
|
@ -16,7 +16,7 @@ solution: |
|
||||
log "I will win next tick!"; place "lambda";
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
@ -24,7 +24,7 @@ robots:
|
||||
inventory:
|
||||
- [1, lambda]
|
||||
- name: sleeper
|
||||
loc: [0,-1]
|
||||
loc: [0, -1]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
|
@ -38,7 +38,7 @@ solution: |
|
||||
forever {tryharvest}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
@ -46,7 +46,7 @@ robots:
|
||||
inventory:
|
||||
- [1, lambda]
|
||||
- name: planter
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
@ -66,9 +66,9 @@ entities:
|
||||
attr: plant
|
||||
char: 'W'
|
||||
description:
|
||||
- A fast-growing weed.
|
||||
- A fast-growing weed.
|
||||
properties: [known, portable, growable]
|
||||
growth: [1,2]
|
||||
growth: [1, 2]
|
||||
- name: Win
|
||||
display:
|
||||
attr: device
|
||||
@ -79,6 +79,6 @@ entities:
|
||||
world:
|
||||
palette:
|
||||
'.': [grass]
|
||||
upperleft: [0,0]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
.
|
||||
|
@ -25,7 +25,7 @@ solution: |
|
||||
forever {tryharvest}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
@ -33,7 +33,7 @@ robots:
|
||||
inventory:
|
||||
- [1, lambda]
|
||||
- name: planter
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
@ -55,12 +55,12 @@ entities:
|
||||
attr: plant
|
||||
char: 'W'
|
||||
description:
|
||||
- A fast-growing weed.
|
||||
- A fast-growing weed.
|
||||
properties: [known, portable, growable]
|
||||
growth: [1,2]
|
||||
growth: [1, 2]
|
||||
world:
|
||||
palette:
|
||||
'.': [grass]
|
||||
upperleft: [0,0]
|
||||
upperleft: [0, 0]
|
||||
map: |
|
||||
.
|
||||
|
@ -18,7 +18,7 @@ solution: |
|
||||
move; harvest; move; grab; turn right; move; grab; grab; harvest; grab
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- treads
|
||||
|
@ -14,14 +14,14 @@ solution: |
|
||||
place "tree"
|
||||
robots:
|
||||
- name: base
|
||||
loc: [5,0]
|
||||
loc: [5, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- treads
|
||||
- logger
|
||||
- grabber
|
||||
inventory:
|
||||
- [1, tree]
|
||||
- [1, tree]
|
||||
world:
|
||||
palette:
|
||||
'.': [grass]
|
||||
|
@ -21,7 +21,7 @@ solution: |
|
||||
}
|
||||
robots:
|
||||
- name: base
|
||||
loc: [0,0]
|
||||
loc: [0, 0]
|
||||
dir: east
|
||||
devices:
|
||||
- logger
|
||||
@ -59,7 +59,7 @@ entities:
|
||||
attr: water
|
||||
char: 'G'
|
||||
description:
|
||||
- A satellite navigation device.
|
||||
- A satellite navigation device.
|
||||
properties: [known, portable]
|
||||
capabilities: [senseloc]
|
||||
- name: Tardis
|
||||
@ -67,6 +67,6 @@ entities:
|
||||
attr: water
|
||||
char: '█'
|
||||
description:
|
||||
- Bigger on the inside.
|
||||
- Bigger on the inside.
|
||||
properties: [known, portable]
|
||||
capabilities: [senseloc, teleport]
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user