Distribusi Linux Debian (dan distro berbasis Debian, seperti Ubuntu, Kali dan lainnya) menggunakan paket-manajer yang disebut APT. Untuk menginstal program, foo
Anda akan mengetik ke terminal
sudo apt-get install foo
Satu Telur Paskah kecil APT adalah sebagai berikut
apt-get moo
Yang setelah mengetik akan menghasilkan output berikut
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
Anda harus menulis sebuah program yang menghasilkan output TEPAT ini dalam sesedikit mungkin byte. (termasuk spasi tambahan dan baris baru)
Berikut adalah output yang sama dengan yang \n
ditambahkan untuk mewakili karakter baris baru, dan *
untuk mewakili spasi tambahan
(__)*\n
(oo)*\n
/------\/*\n
/ | ||***\n
* /\---/\*\n
~~ ~~***\n
..."Have you mooed today?"...\n
Seperti yang diminta dalam komentar, ini adalah md5sum dari mooing.
35aa920972944a9cc26899ba50024115 -
apt-get moo|md5sum
?apt-get moo
PJawaban:
Bash, 95 byte
Di atas adalah hexdump reversibel. Untuk membuat file, jalankan
rekatkan hexdump dan tekan Enter, lalu Ctrl+ D.
Untuk menjalankan file yang dibuat, jalankan
Nama file lain akan dilakukan.
Saya memilih zopfli sebagai kompresor karena itu kompatibel dengan program Coreutils zcat dan mencapai kompresi yang lebih baik daripada gzip, bzip2 dan xz.
zcat<<''
akan membaca baris berikut (sampai EOF) dan mengumpankannya sebagai masukanzcat
.Perhatikan bahwa zcat akan mencetak peringatan (karena saya menghapus checksum dari file yang dikompresi), seperti akan bash (karena HEREDOC tidak diakhiri oleh baris kosong). Peringatan ini dicetak ke STDERR (ditekan oleh
2>&-
), yang diizinkan secara default per konsensus di Meta .sumber
CJam, 96
Ini menggunakan banyak byte jahat, jadi inilah dump hex-nya:
Anda dapat menjalankan file dengan penerjemah java; mungkin perlu menggunakan pengkodean ISO-8859-1, seperti:
java -Dfile.encoding=ISO-8859-1 …
Cobalah online
Versi ASCII Setara (dan lebih lama):
Cobalah online
Penjelasan:
Ada 7 karakter yang memiliki pengulangan:
_o-|~.
. Masing-masing dapat dikodekan sebagai nomor n dari 0 sampai 6. Untuk setiap urutan mengulang, saya pengkodean kedua indeks karakter (n) dan jumlah pengulangan (k) dalam satu byte:2 * (k * 7 + n)
, ditulis sebagai karakter dengan yang kode. Dan saya mengkodekan setiap karakter tunggal sebagai2 * c + 1
, di mana c adalah kode ASCII. Semuanya berjalan di string awal, dan program lainnya menguraikannya:Versi lama (109):
Cobalah online
sumber
Pyth, 100
Cobalah online: Peragaan
r"string"9
run-length-menerjemahkan string.edit:
Inilah solusi untuk char: 97 Demonstrasi . Sangat mungkin ini juga 97 byte (dalam iso-8859-1). Tetapi terlalu lelah untuk menuliskan byte dan melakukan penjelasan. Besok malam, kurasa.
sumber
GolfScript (107 byte)
Ini adalah pengkodean yang sangat sederhana: baris baru diganti dengan
^
, dan spasi di-run-encode. Hasilnya berisi beberapa karakter yang tidak dapat dicetak, jadi saya tampilkan di sini sebagaixxd
keluaran:Demo online
Perhatikan bahwa ini adalah satu karakter lebih pendek dari kode CJam yang sesuai. Tradeoff digunakan
'
sebagai pembatas untuk string utama (menyimpan dua\
s untuk keluar dari"
), menyimpan sebuahi
untuk mengonversi nilai karakter ke integer dalam decoding loop, dan mendapatkan baris baru yang bebas jejak; vs memiliki karakter literal untuk menggantikan string karakter tunggal karakter.Karena pertanyaan ini secara singkat ditandai dapat dicetak-ascii , saya juga membuat versi dengan hanya (108) karakter yang dapat dicetak:
Alih-alih mengkode run-length dari spasi sebagai karakter
^A
untuk^R
(dan encoding^J
sebagai^
tabrakan menghindari), ia meninggalkan baris tersentuh dan mengkodekan jangka-panjang sebagaiI
untukY
.Kebetulan, program GolfScript Kolmogorov tujuan umum saya menghasilkan program 120 byte.
sumber
Lua,
186178 byte8 byte disimpan berkat saran dari @DJ McMayhem
Tidak Disatukan:
sumber
a=repeat(" ",17)
> <> , 217 byte
Sayangnya ini adalah jawaban yang cukup membosankan. Dimulai dengan membacakan string yang menarik seluruh sapi, dengan baris baru dibuat dengan menambahkan nilai 10 ke tumpukan (a). Kemudian masuk ke loop yang hanya menarik keluar sapi.
Saya awalnya membuat lingkaran untuk menambahkan dalam satu set spasi, tapi itu sebenarnya lebih mahal daripada hanya menempatkan spasi.
EDIT: Lupa bahwa ikan ditulis sebagai "> <>"
sumber
PowerShell, 144 byte
Kode di atas akan bekerja dengan baik di lingkungan yang mencetak baris gaya Unix (
\n
). Ini menghasilkan output yang benar dengan, misalnya, Pash di Linux.Secara matematis, untuk PowerShell, memiliki 8 ruang untuk
$a
variabel adalah optimal, karena kurang berarti terlalu banyak ruang tambahan antara variabel dan sapi untuk membuat yang$b
berharga, dan lebih banyak berarti kita tidak dapat menggandakan pada dua baris pertama untuk variabel kepala.sumber
\r
adalah carriage return,\n
adalah linefeed. Bersama-sama,\r\n
membentuk baris baru di Windows. 2. PowerShell bukan hanya Windows. Saya telah menguji kode Anda dengan Pash (implementasi open-source Windows PowerShell untuk Mono) dan hasilnya memiliki hash MD5 yang tepat. 3. Karena hal di atas, saya mengambil kebebasan untuk membatalkan posting Anda. Jika Anda tidak setuju dengan ini, silakan kembali wiki.\r\n
dan\n
, tapi seperti yang saya katakan, saya tidak bisa mendapatkan MD5 dengan benar di Windows tanpa sesuatu yang mengerikan. Terima kasih untuk hasil editnya. Pertama, saya pernah mendengar tentang Pash, jadi terima kasih untuk itu juga. Saya ingin tahu betapa rumitnya membangun di bawah Cygwin ... ;-)Molekul , 145 byte
Pertama kali saya mencoba mengompres seni ASCII: P
sumber