Давно, коли я витрачав більше часу, граючи на RPG, одним із питань, які мали деякі гравці, було відстеження руху партії та складання належної карти. Тож я прийшов з ідеєю, щоб перевірити, як ви, хлопці, підходите до цього питання.
Завдання полягає в тому, щоб написати функцію, яка приймає як вхідний параметр список напрямків (передається як обрана вами структура) ^v<>, відображає карту підземелля. У прикладі для введення: >>>vvv<<<^^^вихід буде:
+----+ +----+
| | |>>>v|
| ++ | |^++v|
| ++ | because |^++v|
| | |^<<<|
+----+ +----+
Тестові шафи
>>>>>>vvvvv<<<<^^^>>v
+-------+
| |
+-+---+ |
| | |
| + | |
| +-+ |
| |
+-----+
^^^^^vvv<<<^^vv>>>>>>>>vv>><<^^^^v>>>>v^<^
+-+
+-+| | +-++-+
| || | | ++ ++
| ++ +-+ |
| +-+ |
+--+ +-+ +-+-+
| | | |
+-+ +---+
Оскільки це виклик коду для гольфу, виграє найкоротший код.
Щасливий гольф.
EDIT Вибачте за пізнє редагування, останнім часом у мене не було багато часу.
Карта формується на основі руху. Він повинен містити лише коридори, які відвідували під час прогулянки. Отже, створення однієї великої кімнати не буде коректною відповіддю.
На карті є три дійсні символи:
|вертикальна стіна|горизонтальна стіна+перетин вертикальної та горизонтальної стіни.
Максимальна довжина шляху - 255 символів (але якщо ви можете, не обмежуйте себе).
Більше тестових випадків:
><><><><
+--+
| |
+--+
>^<v
+--+
| |
| |
+--+
Сподіваюся, зараз усе зрозуміло.
vvv>>^^^<<що виробить (хрести? Труби?)