Входные данные:
- Вы получаете серию целых чисел (подается через стандартный ввод или приглашение).
- Каждая пара целых чисел в этой серии представляет ШИРИНУ здания [допустимый диапазон: 1..10] и ВЫСОТУ [допустимый диапазон: 0..10]
- Предположим, что входные данные будут правильно сформированы.
Пример ввода (вторая строка только для демонстрационных целей):
1 2 1 1 1 0 2 4 1 3 1 2 2 1 WHWHWHWHWHWHWH
Соответствующий образец вывода:
______ / ______ / | | | | __ | | / __ / | __ | | | | __ / __ / | | | | / __ / | | | | __ | | | | | ______ | | / __ / | | | | | / ______ / | | | | | _ | | | | | | | _O_ | _o_ | / __ | _o _____ | _o_ | _o_ | _o _____ | / ------------------------------------- - - - - - - - - - - - - - -------------------------------------
Правила:
Здания
- Основной строительный блок выглядит следующим образом (1 Вт, 1Н)
__ / __ / | (базовый куб заимствован у данного вопроса: | | | http://stackoverflow.com/questions/1609702/code-golf-playing-cubes) | ___ | /
Наш вид (ахум) ~ 3D, поэтому соседние здания могут скрывать части других. Здания «логически» отображаются слева направо.
Первому зданию предшествуют два пробела слева.
Вы визуализируете каждое здание, применяя ШИРИНУ и ВЫСОТУ к размерам базового куба (посмотрите на предоставленный пример вывода!). Для справки: количество символов слева от правой «стены» (для здания с W> 1): (W * 5) - (W-1).
Здания с высотой> 0 имеют ОДНУЮ дверь (которая изображена персонажем
o
и расположена в двух символах от «левой» стены в «нижнем» ряду).
Дорога:
- Дорога состоит из трех частей, которые мы назовем «верх», «середина» и «низ».
- «Верхняя» часть и «нижняя» часть идентичны, за исключением того, что «верхней» части предшествуют два пробела.
- Средней части предшествует один пробел и состоит из повторения следующего шаблона:
'-'
- Длина определяется общей шириной объединенных зданий: самая правая часть дороги соответствует положению «правой» стены «последнего» здания.
Победители:
Это код-гольф! Победителем становится участник конкурса с самым коротким решением (по количеству исходного кода). Источник должен состоять исключительно из печатных символов ASCII. Повеселись!
Воображаемые бонусные баллы для (случайных) окон, автомобилей или пешеходов.
Не стесняйтесь комментировать, если спецификации не ясны!
'- '
(с двумя пробелами)? Редактировать : Ах, два пробела не показывают: P. Вы можете отобразить несколько пробелов, используя ASCII 255 (неразрывный пробел, ALT + 255 на цифровой клавиатуре) или скопировав и вставив мой комментарий здесь. Орр ... вы могли бы вместо этого просто сказать, что это повторение ' - '
:)
but you must not enforce this
3)? ИМО, любое предположение доступно для использования, если оно увеличивает ваш счет. Поэтому я могу написать код, который работает , только если общая ширина меньше 80, если я могу выжать меньшее количество символов. Например, запись выходных данных в массив буферов дисплея с шириной 80, поэтому он будет зависать при любой большей общей ширине. Если вы хотите, чтобы какая-либо ширина поддерживалась, тогда не давайте предположения - вы не можете иметь оба: P