Вызов
Кодировать файл ASCII cookie в соответствии с входными данными.
вход
- Печенье вид. Это одна из трех строк: «Обычная», «Шоколадная» или «Ореховая». Может быть аргументами функции, стандартным (или ближайшим аналогом) или файловым аргументом.
Выход
- ASCII печенье. См. ниже.
Должно быть
___
/ \
| |
\___/
для простого ввода,
___
/. .\
| . |
\___/
для ввода шоколада и, наконец,
___
/^ \
|^ ^|
\___/
для ввода орехов.
Дополнительная информация
- Это мой первый вызов, он настолько прост, насколько это возможно. Конструктивная обратная связь с благодарностью.
- Используйте любые средства, чтобы сделать это.
- Задние пробелы в порядке.
- Это кодовое соревнование по гольфу, поэтому выигрывает самый короткий вход в конце 9 дней (среда, 12 августа 2015 года).
Спасибо!
Победителем является Якуб, использующий Pyth с 41 байтом. Спасибо всем, кто участвовал. Теперь я поставлю перед собой задачу решить более сложные задачи.
Ответы:
Pyth,
4241 байтПопробуйте онлайн: Regular Input / Test Suite
Объяснение:
источник
Руби, 73
Это анонимная лямбда-функция. Вот это в тестовой программе:
Он просто использует первую букву типа cookie (в верхнем регистре) и получает его по модулю 3, чтобы получить индекс в диапазоне
0..2
. Затем он возвращает строку, представляющую cookie, с соответствующими строками, вставленными в нужных местах.источник
ord
метод может сделать, если вы вызываете его для всей строки? Моей первой идеей было форматирование:->s{" ___\n/%1$s \\\n|%1$s %1$s|\n\\___/"%'^. '[s.ord%3]}
tr
оказывается короче:->s{' ___↵/% \↵|% %|↵\___/'.tr ?%,'^. '[s.ord%3]}
s[0] --> s
, мне никогда не приходило в голову попробовать это. Ваш код, похоже, не дает правильного ответа для случая с шоколадом, поскольку шоколадные чипсы находятся в разных местах, чем орехи. Тем не менее, там есть несколько полезных идей, которые я рассмотрю позже. Я не использовалtr
или%
раньше.tr
синтаксисом s. Это просто символ, не участвующий в искусстве cookie, который я использовал в качестве заполнителя.)Python 2.7.6, 99 байт
Этот алгоритм основан на том факте, что
hash(cookie)%3
дает 0 когдаcookie = "Plain"
, 1 когдаcookie = "Nut
и 2 когдаcookie = "Chocolate
. Если кто-нибудь знает способ сделать этот код короче, пожалуйста, дайте мне знать в комментариях.источник
С: 122
Объяснение после того, как я закончу играть в гольф.
Пример использования:
источник
CJam,
4948 байтовПопробуйте онлайн в интерпретаторе CJam .
Как это устроено
В конце CJam автоматически печатает все элементы в стеке.
источник
Javascript (ES6), 90
Это анонимная функция стрелки. Он использует длину входных данных, чтобы определить, какой файл cookie использовать.
Объяснение:
Тестировать:
источник
Brainfuck,
481447436 байтПочему бы не BrainFuck ?, программа, вероятно, может быть больше в гольфе, но я думаю, что это довольно аккуратно.
источник
C # с отступом и переводом строки
Гольф (225 персонажей)
источник
String C= Console.ReadLine(),E=
... и т. Д.?C # 6, 105 байт
Таким образом, почти дошло до этих 100 байтов, но я не знаю, где можно выжать последние несколько байтов: C
источник
Pyth,
5854535250 байтЯ не думаю, что это может быть в гольфе больше. Я действительно пытался сжать это в менее чем 50 байтов
источник
". . . " -> *". "3
JavaScript (ES6), 72 байта
Примерно так просто, как это получается ... новые строки считаются по 1 байту каждая.
демонстрация
Поскольку это ES6, эта демонстрация пока работает только в Firefox и Safari.
источник
Commodore 64 BASIC, 181 байт
Примечания:
Вместо обратной косой черты
\
были использованы символы SHIFT-M, для косой черты/
- SHIFT-N и для труб|
- SHIFT-T. SHIFT-Z (карточный алмазный знак) использовался для^
. На самом деле символы не имеют значения, поскольку все они занимают один байт каждый.Поскольку на C64 каждая команда (PRINT, INPUT, THEN и т. Д.) Занимает 2 байта в памяти (или даже хотя бы один, IIRC), язык BASIC стоил попробовать (однако, он занял больше байтов, чем я ожидал).
Размер программы рассчитывался путем измерения свободной памяти перед вводом программы (38909 байт) и после (38728 байт) с использованием
PRINT FRE(0)+65536
команды, что дает разницу в 181 байт.Код протестирован и скриншоты подготовлены с помощью этого инструмента: http://codeazur.com.br/stuff/fc64_final/ (GPL).
Скриншоты:
источник
Lua 5,3,
113 байт112 байтОн использует много троичных операторов и конкатенацию строк, и я выжал все пробелы, которые не являются частью самого вывода.
источник
Java
258217 символов / байтGolfed
оригинал
источник
LUA 270 символов 270 байтов
источник
cookie
доc
, удаляйте пробелы во время ifs, удаляйте эти ненужныеio.read()
s, первая и последняя строки cookie всегда одинаковы, ....LOLCODE 265 символов
Run
источник