Теперь, когда другие пользователи помогли Трампу построить стену , пришло время взобраться на нее.
Это сложная художественная задача, в которой вам нужно вывести скалолазную стену со случайно расположенными трюмами.
Стена для скалолазания состоит из панелей, каждая из которых имеет от 3 до 10 трюмов и имеет высоту 5 панелей. Каждая панель высотой 4 символа и шириной 10 символов
Мы используем |
для обозначения стороны стены (arête) и a -
для представления краев панелей. Углы панелей обозначены, +
а трюмы - o
.
Наконец, стена должна иметь America!
сверху и Mexico
снизу.
Ваша программа не должна принимать никаких данных, если они не требуются для запуска, и должна выводить что-то похожее на приведенное ниже.
Это пример вывода:
America!
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
| o |
| o o |
| o o |
| o o |
+----------+
Mexico
Это может быть сбивающим с толку, так что это структурировано более четко ниже
вход
Zilcho. Вы не должны принимать абсолютно никакой информации.
Выход
Стена для скалолазания ascii-art состоит из 5 панелей, каждая из которых состоит из 6 линий по 12 колонн с America!
центром вверху и Mexico
центром внизу. Каждая панель имеет идентичный шаблон, который генерируется программой случайным образом. Шаблон панели состоит из случайно распределенного случайного числа удержаний от 3 до 10.
правила
- Вход не разрешен
- Я бы сказал «нет встроенных», но если ваш язык имеет встроенный для этого, я автоматически приму его в качестве победителя.
- Это код-гольф, поэтому выигрывает самый короткий код (в байтах).
- Выход без удержаний должен быть точно таким же, как указано выше, опять же без удержаний.
- Random является случайным определено здесь
Ответы:
Желе ,
6557 байтПервое в истории использование новомодного целочисленного строкового литерала
⁽
с двумя кодами (⁽¥0
= 2049)Полная программа без ввода и печати стены.
Попробуйте онлайн!
Как?
источник
)o <-- a space
. Искренне заставил меня смеяться!PHP, 138 байт
Попробуйте онлайн!
расширенный
источник
JavaScript (ES6),
194160 байтПопробуй
Схема трюмов будет меняться каждые 2 секунды в приведенном ниже фрагменте.
объяснение
h
, которому дается начальное значение0
; это будет вести подсчет количества удержаний на панели, когда мы добавим их.g
, которая является рекурсивной функцией, которую мы будем использовать для создания случайного шаблона удержаний на панели. Мы вернемся к этому немного позже.America!\n
.+----------+\n
) и назначаем ее переменнойt
, добавляя ее к выводу в процессе.| |\n
), повторяем ее 4 раза и добавляемt
.g
, передавая строку из вышеприведенного шага в качестве аргумента, через параметрp
.g
:h>2
(то есть, у нас 3 или более трюмов).p
.g
снова, на этот раз передавая измененную копиюp
аргумента.p
имеетreplace
метод, используемый для замены всех<space>
символов на<space>
илиo
путем ссылки на индекс символа (0 или 1) строки<space>o
.Math.random()
, который возвращает десятичное число от 0 до 1, исключая..8
. Поскольку в панели 40 мест и максимум 10 удерживаний, это улучшает распределение удержаний по панели (.75
было бы точнее, но, надеюсь, вы позволите мне уступку ради сохранение байта!)s
.s
приводится к целому числу (0 или 1) и добавляется кh
.h
меньше ли сейчас 11 (т. Е. Есть ли у нас менее 10 удержаний) иs
верно ли это.g
5 раз.Mexico
в конец строки, чтобы закончить. Уф!альтернатива
И просто потому, что я думал, что это было бы хорошим дополнением к задаче: только для 12 дополнительных байтов у нас может быть уникальный шаблон удержаний на каждой панели, вместо того, чтобы все они были идентичными.
Попробуй
Опять же, схемы трюмов будут меняться каждые 2 секунды.
Показать фрагмент кода
источник
Pyth -
5857 байт, возможно 47Попробуй
Объяснение старого решения (я буду обновлять, когда у меня будет время):
Я думаю, что могу получить 47, но все еще технически следуя правилам:
Здесь число отверстий по-прежнему выбирается случайным образом (из набора {4,8}), а конфигурация этих отверстий выбирается случайным образом (из набора конфигураций, где каждый ряд идентичен)
Попробуй
источник
Mathematica, 201 байт
источник
Powershell (255 байт)
источник
Python 2 ,
259224221218 байтПопробуйте это на repl.it
-35 включая некоторые подсказки от @ Satan'sSon - спасибо!
-3 с благодарностью @Wondercricket
источник
t
а не сохраняя его в переменную, и если вы удалите пробелы послеAmerica!
иMexico
?print" America!" <NEWLINE> d,a,b,c=[" Mexico"],["+"+"-"*10+"+"],[" "]*40,0
?from random import*
и удаливr.
из функцийPython 2, 197 байт
источник