Задача: Кристаллы и драконы
Суть задания
Написать игру, в которой главный герой ходит по лабиринту и ищет клад. Игровой мир представляет собой прямоугольную матрицу связанных между собой комнат. У каждой комнаты есть от одной
до четырёх дверей (соответствующих сторонам света). В каждой комнате может быть несколько игровых объектов, с которыми игрок может взаимодействовать по некоторым игровым правилам. Цель – найти ключ и сундук, открыть сундук ключом и получить священный Грааль. Игра выполнена в виде консольного приложения, игрок управляет персонажем, вводя текстовые команды.
Ход игры
Сначала игрок вводит количество комнат, и программа генерирует лабиринт. Игрок оказывается в одной из комнат лабиринта. При попадании в каждую комнату выводится текст:
You are in the room [x,y]. There are [N] doors: [directions]. Items intheroom: [items list].
Вместо текста в квадратных скобках выводятся, соответственно, координаты комнаты, количество дверей, направления дверей и список предметов в комнате. После этого игроку предлагается ввести команды:
— N, S, W и E перемещают игрока в соответствующем направлении;
— get [item] поднимает предмет в комнате и кладет его в инвентарь (кроме сундука); — drop [item] бросает предмет в комнате, убирая его из инвентаря.
К объекту chest можно применить команду open, которая сработает только в том случае, если
в инвентаре игрока есть объект key. Удачное выполнение этой команды приведет к выигрышу. Проигрыш происходит в случае, когда у игрока кончается лимит шагов, и он умирает от голода
в мрачных застенках драконьей пещеры. В дополнительных заданиях понятия «жизненная сила», «здоровье» и «лимит шагов» по сути означают одно и то же.
Важно: лабиринт не должен быть непроходимым. Не должно быть ситуаций, когда ключ или сундук находятся в изолированной от игрока части лабиринта, или путь из начальной позиции до ключа
и сундука больше лимита шагов.
Дополнительные задания к Задаче
— Добавить новый тип комнаты: тёмная комната. Когда игрок попадает в тёмную комнату, он получает вместо стандартного описания комнаты строку:
Can’t see anything in this dark place!
и не может пользоваться никакими командами, кроме движения. Но если игрок предварительно взял с собой предмет torchlight, то комната обрабатывается как самая обычная;
— сделать так, что если бросить torchlight в тёмной комнате, она все равно остается освещённой;
— добавить объект «еда». Если игрок находит такой объект в комнате, он может выполнить команду eat [item], и таким образом увеличить свои жизненные силы, расширив лимит перемещения;
— добавить монстров. Если человек входит в комнату с монстром, то на экране, помимо стандартного описания комнаты, появляется надпись:
There is an evil [mobname] in the room!