Вхід:
- Ви отримуєте серію цілих чисел (подається за допомогою stdin або prompt).
- Кожна пара цілих чисел у цій серії представляє WIDTH будівлі [дійсний діапазон: 1..10] та HEIGHT [дійсний діапазон: 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) | ___ | /
Ми вважаємо, що (ahum) ~ 3D, тому сусідні будівлі можуть приховувати частини інших. Будинки "логічно" відображаються зліва направо.
Першій будівлі передують два пробіли зліва.
Ви візуалізуєте кожну будівлю, застосувавши ШІРНУ І ВИСОКУ до розмірів базового куба (подивіться на представлений зразок!). Для довідки: кількість символів зліва направо 'стіна' (для будівлі з W> 1): (W * 5) - (W-1).
Будинки з висотою> 0 мають ОДНУ двері (яка зображена символом
o
і розташована на двох символах від "лівої" стіни на "нижньому" ряду).
Дорога:
- Дорога складається з трьох частин, які ми будемо називати "вгорі", "середини" та "знизу".
- "Верхня" частина та "нижня" частина однакові, крім того, що "верхній" частині передують два пробіли.
- Середній частині передує один пробіл і складається з повторення наступного шаблону:
'-'
- Довжина визначається загальною шириною об'єднаних будівель: найправіша частина дороги відповідає положенню «правої» стіни «останньої» будівлі.
Переможці:
Це код-гольф! Переможець - учасник відбору, який має найкоротше рішення (за кількістю вихідних кодів). Джерело має складатися виключно з друкованих символів ASCII. Веселіться!
Уявні бонусні бали за (випадкові) вікна, машини чи пішоходів.
Не соромтеся коментувати, якщо технічні характеристики не зрозумілі!
'- '
(з двома пробілами)? Редагувати : Ах, два пробіли не відображаються: P. Ви можете відобразити кілька пробілів, використовуючи ASCII 255 (нерозривний пробіл, ALT + 255 на numpad) або скопіювавши та вставивши з мого коментаря тут. Орр ... замість цього ви можете просто сказати, що це повторення ' - '
:)
but you must not enforce this
3)? IMO, будь-яке припущення може бути використане, якщо воно збільшує ваш результат. Тож я можу написати код, який працює лише в тому випадку, якщо загальна ширина менше 80, якщо я можу витіснити нижчу кількість символів. Наприклад, виведення запису в масив буфера дисплея шириною 80, тому він вийде з ладу на будь-яку більшу загальну ширину. Якщо ви хочете, щоб будь-яка ширина підтримувалась, тоді не давайте припущення - ви не можете мати обох: P