Вы работаете на виртуальной старомодной печатной машине. Чтобы помочь вам быстрее оформить моноширинные буквы, вы решите создать самую короткую программу, которая поможет вам. Учитывая строку текста и размер страницы, генерировать и выводить каждую страницу текста.
Примеры
Например, с шириной страницы 14, высотой 7 и некоторым текстом, вот ваша книга:
14, 7, "Fruits make an extremely good snack due to their utterly scrumptious sweetness. They are also very healthy for you."
+------------+
| Fruits |
| make an |
| extremely |
| good snack |
| due to |
+------------+
+------------+
| their |
| utterly |
| scrumptio- |
| -us |
| sweetness. |
+------------+
+------------+
| They are |
| also very |
| healthy |
| for you. |
| |
+------------+
Вот основные настройки страницы:
|---i.e.14---|
+------------+ -
| Xxxxxxxxxx | |
| Xxxxxxxxxx | i.
| Xxxxxxxxxx | e.
| Xxxxxxxxxx | 7
| Xxxxxxxxxx | |
+------------+ -
Несколько вещей
- Между краями страницы и текстом есть отступ в один пробел.
- Ширина и высота включают края коробки, если это не было ясно.
- Обтекание происходит только в том случае, если слово не помещается на одной строке.
- Программа должна иметь возможность выводить столько страниц, сколько необходимо, и только столько.
- Ваша программа должна поддерживать любой размер страницы, а не только 14 на 7.
- Это кодовый гольф, поэтому выигрывает самое маленькое решение в байтах (на любом языке).
- Не портите веселье. Стандартные лазейки явно не допускаются.
Да, и, кстати:
+------------+
| May the |
| best book |
| publisher |
| win. Good |
| Luck! |
+------------+
+------------+
| Best |
| program |
| so far: |
| Charcoal |
| |
+------------+
for example 14
что этоe.g.
scru-/-mpt-/-ious
)Ответы:
Python 2 ,
306304283279 байтПопробуйте онлайн!
источник
L=len
чтобы сохранить 2 байта всего ...7, 3, "Three Is The Magic Number!"
), дает ведущую пустую страницу.Древесный уголь ,
10583 байтаПопробуйте онлайн! Ссылка является подробной версией коды
deverbosifier не может обрабатывать. Если бы допустимые пустые строки были приемлемы, я мог бы уменьшить их до 76 байт:ⅈ
иⅉ
nilary операторовОбъяснение:
Введите ширину в
q
и высоту вh
.Переместитесь в позицию, которая будет вызывать первый блок, который будет нарисован, но без создания верхнего поля.
Зациклите все слова во входной строке.
Повторите, пока слово слишком широкое, чтобы поместиться в поле.
Выдвиньте как можно больше слова, которое подходит, и завершающий дефис.
Приставьте дефис к остальной части слова.
Нажмите остальную часть слова.
Обведите все слова, написанные через дефис.
Проверьте, подходит ли слово на текущей строке.
Если так, то напечатайте пробел.
В противном случае перейти к началу следующей строки.
Проверьте, нужна ли нам новая коробка.
Если так, то нарисуйте коробку.
Наконец, напечатайте слово.
источник
Perl 5 ,
203182 + 1 (-a
) = 183 байтаПопробуйте онлайн!
источник
SOGL V0.12 , 92 байта
Попробуй здесь!
источник
JavaScript (ES8), 242 байта
Спасибо @ Tvde1 за сообщение об ошибке
Попробуйте онлайн!
комментарии
источник
12
и7
, некоторые строки / слова перевернуты.Желе , 93 байта
Полная программа, принимающая три аргумента (
text
,width
,height
) , который печатает страницу.Попробуйте онлайн! NB. Слишком неэффективно, чтобы запустить пример из OP в пределах 60 секунд.
( 97 байт если пустая строка между страницами является обязательным требованием)
Как?
источник
PHP, 299 байт
Запустите
php -nr '<code>' <width> <height> '<text>'
или или попробуйте онлайн .источник