Labyrinth-Code: Linke-Wand-Regel
Ein frisches Labyrinth hat keine Schleifen. Folgst du der linken Wand, triffst du den Schatz.
Regeln, an denen die meisten Skripte scheitern
- Auf einem Busch `use_item(Items.Weird_Substance, n)` erzeugt ein n×n-Labyrinth.
- `harvest()` auf dem Schatz gibt Gold gleich der Fläche. Überall sonst verschwindet das Labyrinth.
- Schatz = `Entities.Treasure`, Hecke = `Entities.Hedge`.
- `move()` ist False an Wänden. `measure()` liefert die Schatzkoordinaten.
Labyrinth erzeugen, dann links folgen
python
def spawn_maze():
if get_ground_type() != Grounds.Soil:
till()
harvest()
plant(Entities.Bush)
size = get_world_size()
use_item(Items.Weird_Substance, size)
def solve_maze():
dirs = [North, East, South, West]
facing = 0
while get_entity_type() != Entities.Treasure:
left = (facing - 1) % 4
if can_move(dirs[left]):
facing = left
move(dirs[facing])
elif can_move(dirs[facing]):
move(dirs[facing])
else:
facing = (facing + 1) % 4
harvest()
clear()
while True:
spawn_maze()
solve_maze() Nach dem ersten Labyrinth
Wiederverwendete Labyrinthe können Schleifen haben. Für Bestzeiten mit `measure()` direkt zum Schatz laufen.