Einführung in ASCII-Golf für 05AB1E (Basiskonvertierung [Einfach])
Während 05AB1E nicht direkt für ASCII-Art gedacht ist, habe ich damit 2 Herausforderungen gewonnen. Das Beste an 05AB1E ist, dass Sie selbst mit der einfachen Basiskonvertierung häufig Tricks anwenden können, um Ihre Byteanzahl zu erweitern und sogar zu halbieren. Bei ASCII-Herausforderungen gibt es häufig Wiederholungstricks, mit denen Sie nur die Hälfte des Musters zeichnen und dann kippen und verketten können. Wenn es sich um ein Vier-Wege-Muster handelt, können Sie Dinge wie Reißverschluss und Gabelung ausführen, um nur eine Ecke des Musters zu zeichnen. In Verbindung mit dieser einfachen Idee der Basiskomprimierung können zahlreiche Techniken zur Manipulation von Datenstrukturen verwendet werden.
Hier ist ein kurzer Crash-Kurs zu einer grundlegenden Konvertierungstaktik:
In 05AB1E zähle ich alle in der ASCII-Kunst verwendeten Zeichen auf, zum Beispiel:
--===___===--
Würde ergeben:
-
=
_
Ich weise ihnen dann Nummern zu, die mit 1, dann 0 und dann 2 beginnen:
- is 1.
= is 0.
_ is 2.
Ich ersetze die Zeichen in der ursprünglichen Zeichenfolge durch die Zahlen:
1122200022211
Ich konvertiere in Dezimalzahlen mit der niedrigstmöglichen Basis (3):
879412
( So geht's mit 05AB1E )
Ich konvertiere es dann zur Basis 214:
Jh]
( So geht's mit 05AB1E )
Ich wickle es dann in den folgenden Code ein:
•Jh]•3B…102…-_=‡
Probieren Sie es online!
Oder versuchen Sie es mit angezeigten Zwischenschritten.
Finale erklärt:
•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.
Bei dieser speziellen Herausforderung ist die Saite so kurz, dass es keinen Sinn macht, sie zu spielen. Ich würde wahrscheinlich nur die Hälfte der Saite drücken und 10 Bytes Palindromize "--===__"û
oder Golf spielen, wie es Adnan in den Kommentaren mit faktoriellem, klugem Mann getan hat •Jh]•3B5!…-=_‡
. Er ist auch (einer von?) Der Schöpfer (s?) Von 05AB1E.
Komplexeres Beispiel:
/codegolf//a/106621/59376
Versuchen Sie es auch mit Dennis 'Kolmogorov-Komplexität: Bubblegum ; Keine Ahnung, wie man das benutzt.