Поскольку сейчас суббота (UTC), и я голоден, я хотел бы кусок пиццы. Я дам вам заказ, и я хотел бы хорошую горячую пиццу ascii-art . До вызова?
Drive-Thru
Я размещу свой заказ, где бы вы ни находились, будь то STDIN, параметр функции, аргумент командной строки, но я не собираюсь помещать его в переменную для вас. (Выражения функции JS должны быть назначены переменной.)
Приказ
Мой заказ будет состоять из 2 частей. Первым будет положительное, ненулевое целое число от 3
до 6
. Это размер моей пиццы. Например, размер 6
пиццы без начинки будет выглядеть так:
/=====\
/ \
| |
| |
\ /
\=====/
Размер 5
:
/====\
/ \
| |
\ /
\====/
Размер 4
:
/===\
| |
| |
\===/
Размер 3
/==\
| |
\==/
Начинки
Мои начинки будут цепочкой букв в верхнем регистре. Вот возможные значения:
П - Пепперони S - Колбаса N - piNeapple J - Халапеньо B - Банановый перец C - baCon
Вы должны поместить их в пиццу где-нибудь. Если я закажу размер 4 и PSPCJ
, то это правильный вывод:
/===\
|PSPCJ|
| |
\===/
Так что это:
/===\
|P P J|
| S C |
\===/
И это:
/===\
| |
|PSPCJ|
\===/
Я не очень разборчив в том, где мои начинки на пицце, если они не на корочке или друг на друге.
Окно подбора
Я пойду во многие места, чтобы забрать мою пиццу, включая STDOUT, файл, возвращаемое значение функции, но не переменную.
Дополнительные вещи
- Стандартные лазейки запрещены
- Это помечено code-golf, поэтому выигрывает самый короткий ответ в байтах!
- Не беспокойтесь о неправильном вводе (начинки> место для пиццы и т. Д.)
- См. Мой ответ (JS ES6) ниже для примера (я надеюсь, что вы можете сделать лучше)
̶5̶,̶ ̶N̶N̶N̶
̶ есть правильный ввод данные ̶ (или его следует ̶̶5̶,̶ ̶N̶
̶ , а) ̶ ̶ Кроме того , где грибы ..? :( РЕДАКТИРОВАТЬ:P
Ответы:
Пип ,
878175 байт74 байта кода, +1 для
-l
флага.Принимает ввод в качестве аргументов командной строки. Попробуйте онлайн!
Подходить
e
это верхний ряд, например/=====\
. Если вы измените его, это также нижний ряд.y
это левая граница, такая как["/" "|" "|" "\"]
. Если вы измените его, это также правильная граница.Затем мы создаем середину, беря
b
, начинки, дополняя его пробелами по длине(a+1)*(a-2)
(гдеa
размер), и группируя его в список строк.Наконец, мы печатаем верхний ряд с пробелом; соединить середину
y
слева иRVy
справа и напечатать это; и напечатайте нижний ряд с пробелом.источник
Python 2 ,
202,198,190,177,162,157,146 байтовПопробуйте онлайн!
источник
'\\'
,'|
», и'/
к переменному гольфу от нескольких байт? Вот так я сильно сбрил свой ответ JS.(n-1)
с(--n)
,n>4
s сn>3
,(n+1)
с(n+2)
, и финальное(n-1)
с,n
чтобы сбрить 4 байта?--
оператор!Python 3 ,
224213195 байтПопробуйте онлайн!
источник
JavaScript (ES6),
170161 байтНачинаем с того, что вынимаем деформированную пиццу шириной 2 и высотой 5, растягиваем ее по горизонтали и, при необходимости, корректируем по вертикали, затем заменяем внутреннюю часть начинок или пробелов, когда они заканчиваются.
источник
JS (ES6),
257255249248246244 байтаНазовите это как
m(4)("PS")
для 1 пепперони и 1 колбасы. Вероятно, можно играть в гольф больше.источник
Древесный уголь , 37 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Введите размер пиццы.
Начните печатать верх пиццы.
Если пицца одного из больших размеров, добавьте дополнительно сверху и сбоку.
Напечатайте больше стороны пиццы.
Завершите левую половину пиццы отражением с возможным перекрытием.
Завершите пиццу отражением с переменным перекрытием.
Введите начинки и разделите их на кусочки, чтобы они поместились внутри пиццы.
источник