Introdução ao ASCII-Golfing para 05AB1E (Conversão de Base [Simples])
Enquanto 05AB1E não se destina diretamente ao ASCII-Art, venci 2 desafios com ele. A melhor coisa do 05AB1E é que, mesmo com a simples conversão de base, geralmente existem truques que você pode usar para estender e até reduzir pela metade sua contagem de bytes. Freqüentemente, em desafios ASCII, existem truques de repetição que você pode utilizar para desenhar apenas metade do padrão e depois virar e concatenar. Se for um padrão de quatro vias, você pode fazer coisas como zip e bifurcar para desenhar apenas um canto do padrão. Existem várias técnicas de manipulação da estrutura de dados a serem usadas em conjunto com essa idéia simples de compactação de base.
Aqui está um curso rápido sobre uma tática de conversão básica:
Em 05AB1E, enumero todos os caracteres usados na arte ASCII, por exemplo:
--===___===--
Resultaria em:
-
=
_
Atribuo a eles números começando com 1 e 0 e 2:
- is 1.
= is 0.
_ is 2.
Substituo os caracteres na string original pelos números:
1122200022211
Eu converto para decimal usando a base mais baixa possível (3):
879412
( Como fazer isso usando 05AB1E )
Eu então o converto na base 214:
Jh]
( Como fazer isso usando 05AB1E )
Em seguida, envolvo-o no seguinte código:
•Jh]•3B…102…-_=‡
Experimente online!
Ou tente com as etapas intermediárias exibidas.
Final explicado:
•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.
Agora, com esse desafio específico, a string é tão curta que não faz sentido. Eu provavelmente pressionaria metade da corda e Palindromize por 10 bytes "--===__"û
ou jogaria como Adnan nos comentários usando fatorial, homem inteligente •Jh]•3B5!…-=_‡
. Ele também (uma das?) O criador (s?) De 05AB1E.
Exemplo mais complexo:
/codegolf//a/106621/59376
Além disso, talvez tente a linguagem de complexidade kolmogorov de Dennis: Bubblegum ; não faço ideia de como usar isso.