Anda harus membuat stereogram teks sesuai dengan string input yang berisi paragraf teks, baris kosong lalu pesan tersembunyi. Hasilnya akan ditampilkan sebagai sepasang paragraf, satu dengan jarak yang berbeda yang menyebabkan efeknya dinaikkan ketika dilihat secara stereografis (Penjelasan dapat ditemukan di sini ).
Contoh
Memasukkan:
I invented vegetarianism. It is a diet involving no meat, just vegetables. It is also common in cows - they are awesome.
vegetarianism. is awesome.
Keluaran:
I invented I invented
vegetarianism. vegetarianism.
It is a diet It is a diet
involving no involving no
meat, just meat, just
vegetables. It vegetables. It
is also common is also common
in cows - they in cows - they
are awesome. are awesome.
Bonus
- Tambahkan opsi untuk memilih antara paralel dan juling sebagai input pengguna (-20)
- Lebar kolom dapat disesuaikan sebagai input pengguna (-50)
Ini kode golf, jadi kode terpendek setelah bonus menang.
Jawaban:
Bash, sed:
228223197(242 - 70) = 172Jika skrip berada dalam file yang dapat dieksekusi yang disebut "stereo", ketikkan
column_width adalah angka; 25-45 akan berfungsi, standarnya adalah 35.
page_width adalah angka, seharusnya sekitar dua kali lipat column_width, standarnya adalah 80
Untuk tampilan mata juling, gunakan "r l" sebagai argumen ke-4. Standarnya adalah "l r" yang mengatur tampilan paralel.
EDIT: Menulis ulang untuk membagi file menjadi satu kata per baris, lalu pasang kembali di bagian akhir. Catatan: cadangan tanda "=" untuk penggunaannya sendiri. Tanda "=" apa pun dalam file input akan menjadi kosong.
Sunting: Jika pesan Anda memiliki tanda "=" di dalamnya, Anda dapat memilih simbol lain untuk digunakan skrip, dengan menyediakannya sebagai parameter ke-5.
Contoh
Masukan: vegetarianism.txt:
Hasil
./stereo vegetarianism.txt 32 72 "l r": | perluas (gunakan tanda titik dua untuk simbol kerja internalnya)
./stereo washington.txt 35 75 "l r" | bentangkan
"| Perluas" tidak perlu tetapi ketika menggeser output dengan 4 tempat TAB ditangani secara tidak benar. Itu bisa dimasukkan ke dalam skrip dengan biaya 7 byte.
Variasi ImageMagick
Mengganti baris terakhir dengan perintah ImageMagick teks-ke-gambar:
Dalam hal ini, "r" dan "l" untuk tampilan juling versus paralel adalah argumen terpisah:
./im_stereo vegetarianism.txt 40 80 lr =
(sumber: simplesystems.org )
EDIT 3: Menambahkan variasi ImageMagick.
sumber
TeX 212
Saya menggunakan sistem penyusunan huruf, bukan ASCII. Lebar kolom dapat diubah dengan mengubah
90pt
di baris keempat, tapi saya tidak tahu apakah itu cukup untuk memenuhi syarat untuk diskon 50 byte. Jarak antara dua salinan teks dapat diubah dengan mengubah9pt
, juga di baris keempat. Kode mungkin bisa dibuat lebih pendek. Satu dapat mengganti setiap baris baru dengan satu ruang, tetapi tidak menghapusnya sepenuhnya.Setelah menelepon
tex filename.tex
di terminal, pengguna diminta untuk memberikan teks utama, kemudian diminta lagi untuk mengubah daftar kata. Tidak ada garis kosong di antaranya. Daftar kata (dipisahkan spasi) yang diberikan pada baris kedua harus muncul persis seperti pada teks utama (tanda baca diperlakukan seperti huruf, hanya spasi kata-kata pembatas ruang).sumber
Javascript 391 (441 - 50)
(Golf kode pertama saya)
Hasil
Kode panjang:
sumber
Q='length'
dan kemudian mengganti hal-hal sepertiA.length
denganA[Q]
.Javascript 493 (harapan minimum)
Kode ini mengatur dua array garis (kiri dan kanan), mengaturnya dalam sebuah string dan mencetak ke
f12
konsol.Ini hanya jawaban minimum, tidak dimaksudkan untuk menang.
sumber
L=b=>b.length;c=console.log;p=prompt;r=(l=p().split(g=" ")).slice(),m=p().split(g),s=(f=[]).slice(),n=w=a="";for(i=0;i<L(l);i++)l[i]==m[0]&&(m.shift(),l[i]=g+r[i],r[i]+=g),L(l[i])+1>w&&(w=L(l[i])+1);for(;L(l);){f[L(f)]="";for(s[L(s)]="";L(l)&&L(f[L(f)-1])+L(l[0])<w;)f[L(f)-1]+=l[0]+g,s[L(s)-1]+=r[0]+g,l.shift(),r.shift();f[L(f)-1]+=g.repeat(w-L(f[L(f)-1]))}for(c(f,s);L(f);)a+=f[0]+s[0]+"\n",f.shift(),s.shift();c(a)
GolfScript 209 (279 -50 -20)
Ini adalah program GolfScript besar pertama saya. Saya tidak akan terkejut jika ada optimasi yang bisa didapat. Kedua bonus didukung; mereka diharapkan ditemukan setelah input pesan, seperti:
Jika Anda menyimpan file itu ke
input
(dan mengunduh GolfScript ), Anda dapat memanggil skrip dengan:Golf
Tidak disatukan
sumber
JavaScript 391
sumber