:pkq olWdeky=ci=mkhamT._:lkq ha XeR hapmRae=c Yc._0l'=W fxffWgW XYWghSic,_pui 4ggTiui=W eamR!###
:
Ia YiumUbu Wlx=ci fxtc_
#
_9We oWi lmzpW WiZmaeuhSic,_;u ;AaqpameR!
=
p
;
sWUma
2=`f
T`w`¶Α-ώ
Cobalah online!
Woohoo, hanya di bawah 200 byte.
Penjelasan
Gagasan utama adalah untuk menghindari karakter Unicode yang sebenarnya untuk sebagian besar, karena mereka hanya meledakkan jumlah byte jika mereka digunakan di mana saja. Sebaliknya, saya mewakili setiap huruf Yunani dengan huruf atau digit ASCII. Ternyata huruf-huruf yang relevan dari Α
(itu adalah alfa) untuk ώ
menjangkau tepat 62 poin kode. Itu 10 + 26 + 26, jumlah digit dan huruf ASCII. Karakter Unicode lain yang kami punya adalah ¶
, yang digunakan Retina untuk mewakili umpan baris. Kita dapat menyimpan beberapa byte lagi dengan menggantinya dengan _
. Kemudian singkatan w
dalam tahap transliterasi mengandung persis 63 karakter yang kami gunakan sebagai substitusi, dan kami dapat mewakili kisaran yang dipetakan untuk menggunakan hanya 3 karakter 2-byte (¶
dan dua ujung rentang huruf Yunani).
Oleh karena itu, kode ini terbilang tidak terbaca sebagian besar, karena penggantian ini dilakukan pada tahap terakhir. Mari kita batalkan ini untuk lebih memahami kode:
:του σπαθιού=ην=ρομερή.¶:που με βιά μετράει=η γη.¶Απ'=α κόκκαλα βγαλμένη,¶των Ελλήνων=α ιερά!###
:
Σε γνωρίζω από=ην κόψη¶
#
¶Και σαν πρώτα ανδρειωμένη,¶;ω ;Λευτεριά!
=
τ
;
χαίρε
2=`κ
Itu terlihat sedikit lebih seperti barang yang ingin kita hasilkan. Tahap pertama hanya menyiapkan kerangka keseluruhan. Ini berisi semua bagian unik dari output serta beberapa placeholder lainnya untuk bagian berulang:
:
singkatan dari baris pertama dan ketiga. Mereka akhirnya menjadi sedikit berbeda, karena κ
hilang dari baris ketiga, itulah sebabnya tahap terakhir menghilangkan yang kedua κ
dalam hasilnya.
#
singkatan dari dua baris terakhir, yang diulang tiga kali.
;
singkatan yang diulang χαίρε
dalam baris tersebut.
=
singkatan dari kata yang diawali dengan τ
(dan ruang sebelumnya). Ada cukup banyak dari mereka untuk menyimpan satu byte.