Вступ до ASCII-Golfing для 05AB1E (базове перетворення [просте])
Хоча 05AB1E не призначений безпосередньо для ASCII-Art, я виграв у ньому 2 завдання. Найкраще в 05AB1E - це те, що навіть при простому перетворенні бази, часто є хитрощі, які ви можете використовувати, щоб розширити і навіть вдвічі зменшити кількість байтів. Часто в завданнях ASCII виникають трюки з повторенням, які ви можете використовувати лише для того, щоб намалювати лише половину візерунка, а потім перевернути і з’єднати. Якщо це чотиристоронній візерунок, ви можете робити такі речі, як блискавка та роздвоєння, лише намалювати куточок візерунка. Існує маса методів маніпулювання структурою даних, які можна використовувати у поєднанні з цією простою ідеєю стиснення бази.
Ось швидкий курс аварійного завершення на базовій тактиці перетворення:
У 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.
Тепер із цим конкретним викликом рядок настільки короткий, що робити це не має сенсу. Я б, мабуть, просто просунув половину струни і Palindromize на 10 байт "--===__"û
або пограти в гольф, як це робив Аднан у коментарях, використовуючи факторний розумний чоловік •Jh]•3B5!…-=_‡
. Він також (один з?) Творець (и?) З 05AB1E.
Більш складний приклад:
/codegolf//a/106621/59376
Також, можливо, спробуйте мову колмогорів Денніса на складність: Bubblegum ; поняття не маю, як це використовувати.