Introduzione a ASCII-Golfing per 05AB1E (conversione di base [semplice])
Mentre 05AB1E non è destinato direttamente all'arte ASCII, ho vinto 2 sfide con esso. La cosa migliore di 05AB1E è che, anche con la semplice conversione di base, ci sono spesso trucchi che puoi usare per estendere e persino dimezzare il conteggio dei byte. Spesso nelle sfide ASCII ci sono trucchi di ripetizione che è possibile utilizzare per disegnare solo metà del modello, quindi capovolgere e concatenare. Se è un modello a quattro vie puoi fare cose come zip e biforcate per disegnare solo un angolo del modello. Esistono molte tecniche di manipolazione della struttura dei dati da utilizzare insieme a questa semplice idea di compressione di base.
Ecco un rapido corso accelerato su una tattica di conversione di base:
In 05AB1E elenco tutti i caratteri usati nell'arte ASCII, ad esempio:
--===___===--
Si tradurrebbe in:
-
=
_
Quindi assegno loro i numeri che iniziano con 1, poi con 0 e poi con 2:
- is 1.
= is 0.
_ is 2.
Sostituisco i caratteri nella stringa originale con i numeri:
1122200022211
Converto in decimale usando la base più bassa possibile (3):
879412
( Come fare questo usando 05AB1E )
Quindi lo converto in base 214:
Jh]
( Come fare questo usando 05AB1E )
Lo avvolgo quindi nel seguente codice:
•Jh]•3B…102…-_=‡
Provalo online!
Oppure provalo con i passaggi intermedi visualizzati.
Spiegazione finale:
•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.
Ora, con questa sfida specifica, la stringa è così corta che non ha senso farlo. Probabilmente spingerei solo metà della stringa e Palindromize per 10 byte "--===__"ûo la golferei come ha fatto Adnan nei commenti usando fattoriale, uomo intelligente •Jh]•3B5!…-=_‡. È anche (uno di?) Il creatore (i?) Di 05AB1E.
Esempio più complesso:
/codegolf//a/106621/59376
Inoltre, forse prova il linguaggio di complessità kolmogorov di Dennis: Bubblegum ; non ho idea di come usarlo.