Я люблю сардины, их не хватает, как и мой компьютер Omnilang 5000, который не зависит от языка.
Чтобы подарить моему компьютеру удовольствие от сардин, я решил накормить его рядом программ, которые способны отображать на экране банки сардин в различных ориентациях и отображать до десяти сардин.
В этом задании вы будете нести ответственность за создание программ на основе следующих параметров:
Вход
Число (от 0 до 10) и буква от одного из следующих «LR» (обозначающих соответственно «Левый» или «Правый») Например: 3L
или 5R
; как это ввести в программу, зависит от вас.
Выход
Открытая банка сардин с сардинами, обращенными в указанном направлении, с ключом (обозначенным %
символом « ») и очищенной крышкой (свернутая банка на конце, обозначенным знаком « @
»), расположенной в верхней части банки.
- Все сардины должны быть направлены в направлении, указанном на входе.
- Все сардины будут иметь тела длиной пять символов между жаброй ("
)
" или "(
") и хвостом "><
" - Ключ и очищенный рулон крышки всегда будут направлены в направлении, противоположном сардинам.
- Олово должно иметь трехмерный вид, как показано ниже в примерах.
- Минимальная высота банки составляет 3 сардины в высоту. Таким образом, если число меньше 3, должна быть показана банка с сардинами высотой 3 с введенным количеством сардин в нем. В противном случае в банке должно быть указано максимальное количество сардин, указанное во входных данных. Таким образом, ввод
0R
или0L
покажет пустую банку сардины. - Любой другой вход, который не может быть проверен, ничего не показывает.
Например, для " 3L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
|<*)_____><||
'==========''
Для " 7R
"
__________
%@__________)
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
||><_____(*>|
''=========='
Для " 2L
"
__________
(__________@%
|<*)_____><||
|<*)_____><||
| ||
'==========''
Для " 0R
"
__________
%@__________)
|| |
|| |
|| |
''=========='
" 0L
"
__________
(__________@%
| ||
| ||
| ||
'==========''
Неверный ввод ничего не вернет ...
- Это код гольф, поэтому наименьшее количество персонажей выиграет этот вызов.
- Нет лазеек, как обычно.
-v
флаг), а направление («L» или «R») под «дать вход в программу "затем нажмите" дать ". (Я отредактировал ответ, чтобы, надеюсь, прояснить это.)Эмоджикод ,
456448 байтПринимает 2 аргумента: первый - линии, второй - направление (0 или 1).
Попробуйте онлайн!
«Читаемая» версия без гольфа и версия с псевдокодом:
источник
Python 2 , 155 байт
Попробуйте онлайн!
Вход состоит из кортежа длиной 2. Первый элемент указывает количество сардин. Второй элемент указывает направление;
0
для левого,1
для правого.-84 байта, используя лямбда-магию благодаря notjagan и officialaimm
источник
0 to 10
. PS` -10` напечатал бы пустую жесть, потому что это означает, что были10
сардины, но вы уже съели их. : DРыбалка , 1311 байт
Принимает входные данные
stdin
в форме:Рыбалка не включена в Try It Online , но на Ruby на связанной странице esolangs есть переводчик.
Это первая программа, которую я сделал в Рыбалке - фактически, это первая программа, которую я сделал на любом двумерном языке - так что она может быть намного короче. Приветствуются советы по игре в гольф (хотя я не удивлюсь, если никто не даст, учитывая, что даже я не знаю, какого черта я только что написал).
Вот GIF-путь, который программа использует для ввода
1R
(извините за низкое качество):(Это было создано с использованием созданного мной интерпретатора; насколько я знаю, нет общедоступных программ, которые "визуализируют" рыбалку)
источник
Древесный уголь , 49 байтов
Попробуйте онлайн! Ссылка на подробную версию кода. Первый аргумент - количество сардин, второй - направление (0 = слева, 1 = справа).
источник
SOGL V0.12 ,
5148 байтовПопробуй здесь!
Ожидается, что в качестве 1-го числа будет указано число, а 2-го - влево или вправо, представленное 1 или 0.
Объяснение:
источник
R,
334 байта,311 байтовФункция принимает числовое значение для n и строку для направления.
Это моя первая публикация, поэтому я признаю, что не знаю, как считать байты кода.
источник
C ++,
307296292 байтаИспользование :
-11 байтов сохранено благодаря пользователю ThePirateBay -4 байта благодаря Zacharý
источник
#define
директиве? Я не проверял это, но кажется, что в них нет необходимости.c!=82
бытьc-82
в каждом случае, где вы его используете?Python 2 , 287 байт
Попробуйте онлайн!
Входные данные через запятую кортеж чисел этого формата:
2, 1
. Первое число - это количество рыбы, а второе - 0 для левого и 1 для правого.Это началось как попытка превзойти другой ответ (я полностью думал, что смогу), но это отстой. : P Если бы кто-нибудь смог сделать это с головы до хвоста и помочь в игре в гольф (я виню в этом в 12 часов), я был бы рад.
источник
C # (.NET Core), 289 байт
Попробуйте онлайн!
Принимает целое число и символ (L, R) в качестве параметров и выводит результирующую строку.
Тьфу. Пришлось иметь дело с некоторыми раздражающими строковыми константами, к сожалению, вы не можете просто сделать
string * length
в C #. И метод сnew string(char, length)
не стоил бы байтовой стоимости.Алгоритм работает следующим образом:
h > i
мы помещаем в нее сардины. Еслиi >= h
, там будет пустое место, где обычно будет сардина.источник
Perl 5 , 167 + 1 (-n) = 168 байт
Попробуйте онлайн!
источник
JavaScript (ES6),
283273269251 байтСохранено 10 байтов благодаря @WallyWest
Сохранено 4 байта, удаляя лишние парены
Сохранено 18 байт благодаря @ThePirateBay
Страдает от отсутствия обращения строк в стандартной библиотеке. Определяет функцию, которая принимает входные данные
n
для количества рыбы иd
для направления. Бросает, еслиd
не "L" или "R".Попробуйте онлайн
источник
if...else if
вложенные троицы с назначением деструктурирования. У меня нет идей ..._
функцию дважды, один раз для 10 знаков подчеркивания (которое используется дважды), один раз для 10 знаков равенства, поэтому наличие ее в функции экономит мне байт. И если я не использую строки шаблона неправильно, их использование вместо конкатенации будет на 3 байта больше .