Это продолжение вопроса « Распечатать лабиринт» . Если вам нравится этот вопрос, пожалуйста, добавьте больше алгоритмов генерации лабиринтов;).
Для этого задания вам нужно будет внедрить игровой движок для одного игрока, который должен найти клад в лабиринте и выбраться из темницы.
Движок запускается с чтения лабиринта из стандартного ввода, за которым следует строка, содержащая файл, заданный в качестве аргумента в командной строке. Далее игрок .
(точка)@
размещается в случайном месте на карте. Затем движок начинает взаимодействовать с игроком через стандартный io:
Команды от двигателя к игроку :
continue
: Игра не закончена. Окружение напечатано, а затем.
. Игрок представлен@
персонажем. Ненаблюдаемые клетки представлены?
.finished
: Игра окончена. Количество шагов печатается и игра останавливается.
Команды от игрока к двигателю :
north
: Перемещает игрока вверх.south
: Перемещает игрока вниз.west
: Переместить игрока влево.east
: Переместить игрока вправо.
Любая неверная команда (например, удар по стене) от игрока игнорируется, но все равно считается. Вы можете сами определять обстановку по своему вкусу.
- Очки за самый короткий код.
- Точки для сложной среды (например, печать больших областей и замена ячеек, которые не видны
?
). - Нет баллов за код, который не соответствует формату io
Пример :
В этом примере окружение определяется как ячейка 3х3 с игроком посередине.
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7