05AB1E için ASCII-Golf'e Giriş (Temel Dönüşüm [Basit])
05AB1E doğrudan ASCII-Art için tasarlanmamış olsa da, onunla 2 zorluk kazandım. 05AB1E ile ilgili en iyi şey, basit taban dönüşümü ile bile, bayt sayınızı genişletmek ve hatta yarıya indirmek için kullanabileceğiniz numaralar olmasıdır. Genellikle ASCII zorluklarında kalıbın sadece yarısını çizip çevirip birleştirmek için kullanabileceğiniz tekrarlama hileleri vardır. Dört yönlü bir desense, desenin sadece bir köşesini çizmek için zip ve bifürkate gibi şeyler yapabilirsiniz. Bu basit taban sıkıştırma fikri ile birlikte kullanılacak birçok veri yapısı manipülasyon tekniği vardır.
Temel dönüşüm taktiği hakkında hızlı bir kurs:
05AB1E'de ASCII sanatında kullanılan tüm karakterleri numaralandırıyorum, örneğin:
--===___===--
Şunlarla sonuçlanır:
-
=
_
Sonra onlara 1'den sonra 0'dan sonra 2'den numaralar atarım:
- is 1.
= is 0.
_ is 2.
Orijinal dizedeki karakterleri sayılarla değiştiriyorum:
1122200022211
Mümkün olan en düşük tabanı (3) kullanarak ondalığa dönüştürüyorum:
879412
( 05AB1E kullanarak nasıl yapılır )
Sonra temel 214 dönüştürmek:
Jh]
( 05AB1E kullanarak nasıl yapılır )
Daha sonra aşağıdaki kodda sarın:
•Jh]•3B…102…-_=‡
Çevrimiçi deneyin!
Veya görüntülenen ara adımlarla deneyin.
Final açıkladı:
•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.
Şimdi, bu özel meydan okuma ile dize o kadar kısa ki yapmak mantıklı değil. Muhtemelen ipin yarısını itip 10 bayt için Palindromize "--===__"û
veya faktöriyel, akıllı adamı kullanarak yorumlarda Adnan'ın yaptığı gibi golf yapardım •Jh]•3B5!…-=_‡
. O da var (biri?) Yaratıcısı (ler?) 05AB1E ait.
Daha karmaşık bir örnek:
/codegolf//a/106621/59376
Ayrıca, Dennis'in kolmogorov-karmaşıklık dilini de deneyebilirsiniz: Bubblegum ; bunu nasıl kullanacağımı bilmiyorum.