Учитывая входной список непустых строк, выведите художественное представление турнира в формате ASCII на основе следующих правил рисования:
- Количество строк гарантированно должно быть количеством
2,4,8,16,etc.
- Первые две строки играют друг друга, а следующие две играют друг друга, и так далее. Это первый раунд.
- Для каждой игры выбирайте победителя случайным образом с равной вероятностью.
- В следующем раунде победитель первой игры играет победителя второй игры, победитель третьей игры играет победителя четвертой игры и так далее. Последующие раунды следуют шаблону.
- В конечном итоге есть один победитель.
- Для красивого вывода (обязательно) все строки должны быть предварительно добавлены и дополнены подчеркиванием
_
. - Для того чтобы скобки выстроились соответствующим образом, каждая запись должна быть дополнена,
_
чтобы все были одинаковой длины для этого раунда. - Вы можете выбрать, будет ли дополнение или дополнение добавлено, при условии, что оно соответствует.
- Вместо этого вы можете выбрать предварительную вставку всех строк одинаковой длины, а не для каждого раунда. Какой бы ни был игрок в гольф для вашего кода.
Дальнейшие правила
- Начальные или завершающие символы новой строки или пробелы являются необязательными, при условии, что сами символы выстроены правильно.
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Если возможно, укажите ссылку на среду онлайн-тестирования, чтобы другие люди могли опробовать ваш код!
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Примеры
Пример с городами ['Boston', 'New York', 'Charlotte', 'Atlanta', 'St. Paul', 'Chicago', 'Los Angeles', 'Phoenix']
:
_Boston______
\_New York____
_New York____/ \
\_New York_
_Charlotte___ / \
\_Charlotte___/ \
_Atlanta_____/ \
\_St. Paul_
_St. Paul____ /
\_St. Paul____ /
_Chicago_____/ \ /
\_St. Paul_/
_Los Angeles_ /
\_Los Angeles_/
_Phoenix_____/
Пример с ['Lions', 'Tigers', 'Bears', 'Oh My']
:
_Lions__
\_Tigers_
_Tigers_/ \
\_Tigers_
_Bears__ /
\_Bears__/
_Oh My__/
Ответы:
Древесный уголь ,
9279 байтПопробуйте онлайн! Ссылка на подробную версию кода. Нужна пустая строка, чтобы отметить конец ввода. Объяснение:
Инициализируйте переменную
q
. Это держит размер зигзагов, то есть половину промежутка между рядами.Читайте непустые строки ввода в массив
u
. Строки автоматически окружаются символом_
s, когда они читаются, хотя они еще не заполнены.Цикл, пока есть еще строки.
Рассчитайте ширину наибольшей строки в
e
.Рассчитайте разрыв между рядами в
d
.Для каждой команды напечатайте отступы, напечатайте команду, а затем перейдите к следующей команде.
Для любой другой команды случайным образом выбирайте между этой командой или предыдущей командой. (Обратите внимание, что если осталась только одна команда, то это создает пустой список.)
Если еще остались команды, нарисуйте зигзаги, соединяющие их попарно.
Удвойте длину зигзагов каждый раз.
источник
▷vS
или что-то для этого в любом случае.Python 2 ,
379364 байтаПопробуйте онлайн!
источник