Это пятница! Что означает, что пришло время для пива!
К сожалению, сегодня мы будем играть в гольф, а не пить его. :(
Вызов
Выведите пиво и выпейте его. Количество глотков, которые вы принимаете, меняет ваш вывод.
Sips
Ваша программа должна взять одну входную строку. Эта строка может состоять исключительно из сцепленных sip
s.
Если на входе пустая строка, вы должны вывести полный стакан пива, включая пену.
Чем больше глотков вы сделаете, тем пустее будет ваш пивной бокал.
Если вы сделаете 0 глотков, у вашего пива все еще будет пена. Выход этой пены всегда одинаков (см. Примеры).
Если вы сделаете 1 глоток, вы должны вывести пивной бокал, затем новую строку и строку Yuck, foam.
.
Если вы сделаете 1 или более глотков, ваша пивная кружка больше не должна содержать пену, но должна показывать верхнюю часть стакана. Питьевая пена считается одним глотком.
Если вы сделаете 6 или более глотков, вы должны вывести пустой пивной бокал, за которым следует новая строка и строка Burp
.
С каждым глотком ваш бокал пива должен опустошаться. Степень наполненности вашего бокала зависит от количества пузырьков °
( °
) в вашем пиве. Для каждого глотка, который вы принимаете после пены, необходимо удалить линию пузырьков. Каждая линия пива может содержать минимум 1
и максимум 5
пузырьков. Положение этих пузырьков должно быть на 100% случайным.
Примеры
вход
empty input string, or no input at all
выход
oo o oo
oooooooooooo
o| ° ° |\
| ° | \
| °° ° |} |
| ° ° | /
| ° °|/
\__________/
вход
sip sip sip
выход
____________
| |\
| | \
| ° |} |
|° ° ° | /
| ° ° |/
\__________/
вход
sip sip sip sip sip sip sip sip sip sip
выход
____________
| |\
| | \
| |} |
| | /
| |/
\__________/
Burp
Эта вставка содержит список входов и выходов. Помните, что пузырьки в бокале должны быть случайными!
счет
Это код-гольф , выигрывает самый короткий код в байтах!
Счастливого питья в гольф!
°
это символ с кодовой точкой 176.Ответы:
Japt , 189 байт
Я чуть не сошел с ума, пытаясь заставить это работать должным образом ...
Попробуйте онлайн!
(Примечание. Эта программа была создана для более старой версии Japt и в настоящее время не работает в последней версии. Чтобы обойти эту проблему, в URL указана более старая версия. К сожалению, это также означает верхнее правое поле кода не работает.)
Это , безусловно , самая длинная программа , которую я когда - либо написал в Japt. Вот разбивка:
Шаг 1: Создайте верх пивной кружки.
Если U - пустая строка, это делает:
В противном случае это делает:
Шаг 2: Создайте средние ряды кружки.
Это приводит к предыдущей строке плюс:
Шаг 3: Добавьте пузыри.
На данный момент кружка выглядит примерно так:
Шаг 4: Добавьте последнюю строку и необязательный текст.
Теперь все готово для отправки на выход, что делается автоматически. Если у вас есть вопросы, не стесняйтесь спросить!
источник
JavaScript (ES6),
283281 байтобъяснение
Тест
источник
PHP,
277265263 байтаПредполагая 1-байтовый перевод строки. Добавьте один в
14
и17
на Windows.Беги с
-r
. разрывы строк могут нуждаться в экранировании.сломать
источник