Pada 25 Maret 1821, Yunani bertempur dalam perang kemerdekaannya yang besar . Untuk menghormati ini, tugas Anda adalah mencetak lagu kebangsaan Yunani:
Σε γνωρίζω από την κόψη
του σπαθιού την τρομερή.
Σε γνωρίζω από την όψη
που με βιά μετράει τη γη.
Απ' τα κόκκαλα βγαλμένη,
των Ελλήνων τα ιερά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Και σαν πρώτα ανδρειωμένη,
χαίρε ω χαίρε Λευτεριά!
Ini adalah versi lagu kebangsaan saya sendiri (tanda baca, huruf besar), meskipun liriknya asli.
- Semua bawaan yang mencetak atau mengembalikan teks ini dilarang, untuk berjaga-jaga.
- Teks yang dicetak harus persis seperti di atas, dengan baris tambahan opsional.
- Output harus dalam UTF-8, kecuali jika tidak dapat didukung sama sekali, dalam hal ini output harus dikodekan dalam alternatif terdekat yang didukung.
code-golf
kolmogorov-complexity
unicode
Erik the Outgolfer
sumber
sumber
Σ
dalam ISO-8859-1, ketika ditafsirkan dalam UTF-8, adalahΣ
. ( Alat yang berguna )Jawaban:
Jelly ,
180174163 byteCobalah online!
sumber
ṃ
...ṃ€
...ḃ
...) ... Selamat atas jawaban tersingkat (yang pantas mendapatkan lebih banyak suara positif)!Python 3 , 263 byte
Cobalah online!
Gunakan teknik pengulangan yang sama dengan yang digunakan mbomb007 , tapi saya mengganti semua karakter lebih tinggi dari 47 (semua huruf yunani), u913 ~ u974 dengan u48 ~ u109, dan kemudian membatalkan ini sebelum mencetak
sumber
Java 7,
320319300294293 byteCobalah online!
Ini menghasilkan lagu dengan baris baru yang tertinggal. Saya mengubah fungsi dari mengembalikan
String
kevoid
sehingga akan mencetak String daripada mengembalikannya dan menyimpan byte.Akankah bermain golf lebih jauh di pagi hari Parapegolf tidak tidur: PPenjelasan (kedaluwarsa)
Untuk sampai ke String yang direduksi ini, saya secara manual memeriksa pengurangan angka dari titik kode mana yang terbaik. Nilai-nilai ini harus terletak di antara
dan
~
. Dalam rangka untuk membuat deteksi apakah char adalah tanda baca (.
,'
,!
,) atau tidak, akan lebih baik jika semua nilai berbohong atas
.
(46). Dan seharusnya tidak ada\
s di String karena kalau tidak Jawa berpikir mereka adalah urutan melarikan diri, dan jadi saya harus melarikan diri dari mereka. Akhirnya saya muncul dengan mengurangi 866 dari karakter Yunani.sumber
Python 3,
350345 byteCobalah online
sumber
sep
untuk -5 byteWindows 10 Batch,
424404 byteCatatan:
chcp
panggilan gagal jika Command Prompt Anda dikonfigurasi untuk menggunakan Raster Fonts. Ubah mereka menjadi misalnya Konsol Lucida (tidak memerlukan restart).chcp 65001
.Sunting: Disimpan 20 byte berkat @ ConorO'Brien.
sumber
@set t="Και σαν πρώτα ανδρειωμένη," "χαίρε ω χαίρε Λευτεριά!"
dan ganti%t% %u%
dengan%t%
?Bubblegum , 190 byte
Cobalah online!
sumber
PowerShell ,
332270261 byteCobalah online!
Ini mengambil string munged sebagai
char
-array, mengumpankannya satu per satu melalui loop|%{...}
setiap iterasi baik menghasilkan karakter lurus$_
atau menambahkannya dengan870
sebelum kembali casting sebagaichar
(berdasarkan pada apakah itu tanda baca atau tidak). Beberapa trik lain ditetapkan$a
sebagai frasa berulang, dan de-rangkap tiga bait terakhir. Semua itu-join
diedit bersama menjadi string penuh dan kemudian output tersirat.Edit - Woo! Ini adalah jawaban PowerShell ke-1100 di situs! : D
sumber
Japt,
197196195 byteUji secara online! Berisi tiga 0x95 byte yang telah diganti dengan
?
.sumber
/// ,
324323 byteCobalah online!
Mungkin bisa bermain golf lebih banyak, tapi saya lelah.
Ini berfungsi dengan mengganti karakter seperti
k
dengan teks yang lebih panjang. Saya juga membuat beberapa penggantian karakter, karena karakter Yunani memiliki lebih banyak byte daripada karakter sepertip
. Cukup sederhana.-1 byte terima kasih kepada @ErictheOutgolfer.
sumber
ΛευτεPιά!/
, Anda dapat menghapusnya sehingga output tidak memiliki baris baru yang memimpin.Bash + GNU iconv, 214
Ini hanya menggunakan
iconv
utilitas untuk mengkonversi dari pengkodean YUNANI (byte per char) ke utf-8, bersama dengan menghapus sedikit redundansi dengan menyimpan pengulangan dalam variabel.Jangan mencoba menyalin langsung dari yang di atas - banyak yang tidak dapat dicetak menjadi hijau saat menempel. Sebagai gantinya, buat skrip sebagai berikut:
sumber
-f GREEK
tidak diperlukan. Menggunakan heredoc bukan herestring menyimpan byte tambahan.PHP, 296 Bytes
PHP, 349 Bytes
sumber
Python 2.7, 190 byte
zlib penyalahgunaan. Hexdump:
Seperti yang ditunjukkan @Dennis, ini harus dijalankan di terminal agar dapat menghasilkan output UTF-8 dengan benar.
sumber
echo -ne '.encode("utf8")' >> code.py
garis di tengah menyelesaikan masalah. Saya tidak berpikir mengandalkan terminal UTF-8 terlalu gila, tetapi jika demikian maka saya akan mengubah jawabannya.Retina , 199 byte
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 singkatanw
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:
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.sumber
Jolf, 187 byte
Dikodekan dalam bahasa Yunani membantu.
Coba di sini! Itu semua Yunani bagi saya ...
sumber
Python 3 , 246 byte
Cobalah online!
Pendekatan saya terhadap Rod .
sumber
Bubblegum ,
194187 byteAnda dapat membalikkan hexdump ini dengan
xxd -r
.Terima kasih Dennis karena telah mengalihkan saya ke Zopfli :)
sumber