Введение в ASCII-Golfing для 05AB1E (базовое преобразование [Простой])
Хотя 05AB1E не предназначен для ASCII-Art напрямую, я выиграл с ним 2 испытания. Самое лучшее в 05AB1E - это то, что даже при простом базовом преобразовании часто есть приемы, которые можно использовать для увеличения и даже вдвое уменьшения количества байтов. Часто в вызовах ASCII есть приемы повторения, которые вы можете использовать, чтобы нарисовать только половину шаблона, а затем перевернуть и объединить. Если это четырехсторонний шаблон, вы можете делать такие вещи, как zip и bifurcate, чтобы нарисовать только угол шаблона. Существует множество методов манипулирования структурой данных, которые можно использовать в сочетании с этой простой идеей сжатия базы.
Вот краткий курс по базовой тактике конверсии:
В 05AB1E я перечисляю все символы, используемые в ASCII-искусстве, например:
--===___===--
Приведет к:
-
=
_
Затем я назначаю им числа, начинающиеся с 1, затем 0, затем 2:
- is 1.
= is 0.
_ is 2.
Я заменяю символы в исходной строке числами:
1122200022211
Я преобразую в десятичную систему, используя минимально возможное основание (3):
879412
( Как это сделать с помощью 05AB1E )
Затем я конвертирую его в базу 214:
Jh]
( Как это сделать с помощью 05AB1E )
Затем я оборачиваю его в следующий код:
•Jh]•3B…102…-_=‡
Попробуйте онлайн!
Или попробуйте сделать это с промежуточными шагами.
Финал объяснил:
•Jh]• # Push the compressed ASCII integer.
3B # Convert it to base 3.
…102 # Push the keys to the conversion.
…-_= # Push the values to the conversion.
‡ # Transliterate, replace 0, 1 and 2 with the symbols.
Теперь, с этим конкретным вызовом, строка настолько коротка, что делать не имеет смысла. Вероятно, я бы просто нажал половину строки и «Палиндромиз» на 10 байт "--===__"û
или играл в гольф, как это делал Аднан в комментариях, используя факториального, умного человека •Jh]•3B5!…-=_‡
. Он также (один из?) Создатель (ы?) 05AB1E.
Более сложный пример:
/codegolf//a/106621/59376
Также, возможно, попробуйте Денис Колмогорова - язык сложности: Bubblegum ; понятия не имею, как использовать это.