Pengantar Golf-ASCII untuk 05AB1E (Konversi Basis [Sederhana])
Meskipun 05AB1E tidak ditujukan untuk ASCII-Art secara langsung, saya telah memenangkan 2 tantangan dengannya. Hal terbaik tentang 05AB1E adalah bahwa, bahkan dengan konversi basis sederhana sering ada trik yang dapat Anda gunakan untuk memperluas dan bahkan membagi dua byte-count Anda. Seringkali dalam tantangan ASCII ada trik repitisi yang dapat Anda gunakan untuk hanya menggambar setengah dari pola lalu membalik dan menyatukan. Jika itu adalah pola empat arah, Anda dapat melakukan hal-hal seperti zip dan bifurcate untuk hanya menggambar sudut pola. Ada banyak teknik manipulasi struktur data yang digunakan bersama dengan ide kompresi basis sederhana ini.
Berikut ini kursus kilat cepat tentang taktik konversi basis:
Dalam 05AB1E saya menyebutkan semua karakter yang digunakan dalam ASCII-art, misalnya:
--===___===--
Akan menghasilkan:
-
=
_
Saya kemudian memberi mereka angka dimulai dengan 1 kemudian 0 lalu 2:
- is 1.
= is 0.
_ is 2.
Saya mengganti karakter dalam string asli dengan angka:
1122200022211
Saya mengonversi ke desimal menggunakan basis serendah mungkin (3):
879412
( Cara melakukan ini menggunakan 05AB1E )
Saya kemudian mengubahnya menjadi basis 214:
Jh]
( Cara melakukan ini menggunakan 05AB1E )
Saya kemudian membungkusnya dengan kode berikut:
•Jh]•3B…102…-_=‡
Cobalah online!
Atau coba dengan langkah-langkah menengah yang ditampilkan.
Final menjelaskan:
•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.
Sekarang, dengan tantangan khusus ini, string sangat pendek sehingga tidak masuk akal untuk dilakukan. Saya mungkin hanya mendorong setengah string dan Palindromize untuk 10 byte "--===__"ûatau golf seperti yang dilakukan Adnan dalam komentar menggunakan faktorial, orang pintar •Jh]•3B5!…-=_‡. Dia juga (salah satu dari?) Pembuat (s?) Dari 05AB1E.
Contoh yang lebih kompleks:
/codegolf//a/106621/59376
Juga, mungkin coba bahasa kolmogorov-kompleksitas Dennis: Bubblegum ; tidak tahu cara menggunakan ini.