Блуждание в лабиринте

Постановка задачи

Ваш игрок находится в лабиринте размером N строк и M стобцов. В лабиринте есть:

Вам нужно написать программу, которая управляет персонажем. На каждом ходе персонаж может перемещаться на соседнюю клетку вниз, вверх, влево или вправо. Естественно, если в этой клетке нет препятствия или временного препятствия. Игра заканчивается, когда ваш игрок соберет все сокровища. И да, цель игры - сделать это как можно скорее.

Технические детали

Для программирования и запуска своей программы вам понадобится целый набор файлов. Создайте у себя в директории папку для этого проекта и сразу скопируйте в нее все файлы. Только после этого начинайте что-то редактировать.

Все необходимые материалы выложены в школе на диске H:, а также их можно скачать здесь: одним архивом, или по-отдельности: основная программа, модуль, который нужно написать, и карта лабиринта

Ваша программа

Откройте файл mymove.py. В нем вы и будете писать свою программу.

Сейчас в нем две функции:

def start_game(n, m, lab):
    pass

def mymove(n, m, lab, r, c):
    moves = ["Up", "Down", "Left", "Right"]
    return moves[randint(4)]

Вы можете (и должны) менять текст этих функций, и тем самым управлять своим персонажем.

Функция start_game будет вызвана один раз в начале игры. Ей будут переданы размеры поля (n и m и карта). Эта функция может ничего не возвращать. Примечание: сейчас в ней написана команда "pass" - ничего не делать. Можно ее на что-нибудь заменить...

Функция mymove будет вызываться каждый раз, когда нужно сделать ход. Она получает следующие параметры:

Ваша функция должна принять решение о том, какой ход сделать, и вернуть принятое решение в виде одной из строк:

Примечание: сейчас программа выбирает ход случайным образом (именно для этого нужен модуль random и вызов функции random.seed() в начале. В тексте функции random.randrange(4) возвращает случайное число от 0 до 3-х. Внутренность функции mymove можно и нужно менять!

Задание поля

Поле записано в файле lab.txt в следующем формате:

Вы можете менять лабиринт, в котором вы играете. Однако должны следить за тем, чтобы описание лабиринта всегда оказывалось корректным. Примечание: не рекомендуется сразу начинать с того, чтобы пробовать менять карту. Скорее это дополнительная возможность.

Как все запустить

Когда вы написали свою программу, переключитесь на файл maze.py, и запустите его. Наслаждайтесь!

В файле maze.py запрещается что-либо менять (по крайней мере по правилам игры). Однако вы можете изучать как он устроен, и (уже не в рамках этой задачи) пытаться изменять его.