Anda bekerja di mesin cetak virtual, kuno. Untuk membantu Anda mengatur surat monospace Anda lebih cepat, Anda memutuskan untuk membuat program sesingkat mungkin untuk membantu Anda. Diberikan string teks dan ukuran halaman, hasilkan dan output setiap halaman teks.
Contohnya
Misalnya, dengan lebar halaman 14, tinggi 7, dan beberapa teks, inilah buku Anda:
14, 7, "Fruits make an extremely good snack due to their utterly scrumptious sweetness. They are also very healthy for you."
+------------+
| Fruits |
| make an |
| extremely |
| good snack |
| due to |
+------------+
+------------+
| their |
| utterly |
| scrumptio- |
| -us |
| sweetness. |
+------------+
+------------+
| They are |
| also very |
| healthy |
| for you. |
| |
+------------+
Berikut pengaturan halaman dasar:
|---i.e.14---|
+------------+ -
| Xxxxxxxxxx | |
| Xxxxxxxxxx | i.
| Xxxxxxxxxx | e.
| Xxxxxxxxxx | 7
| Xxxxxxxxxx | |
+------------+ -
Beberapa hal
- Ada margin satu ruang antara tepi halaman dan teks.
- Lebar dan tinggi termasuk tepi kotak, jika itu tidak jelas.
- Sampul hanya terjadi jika sebuah kata tidak dapat ditampung dalam satu baris.
- Program harus mampu menghasilkan halaman sebanyak yang dibutuhkan, dan hanya sebanyak itu saja.
- Program Anda harus mendukung ukuran halaman apa pun, bukan hanya 14 kali 7.
- Ini adalah kode golf, jadi solusi terkecil dalam byte (bahasa apa pun) menang.
- Jangan merusak kesenangannya. Lubang standar jelas tidak diizinkan.
Oh, dan, omong-omong:
+------------+
| May the |
| best book |
| publisher |
| win. Good |
| Luck! |
+------------+
+------------+
| Best |
| program |
| so far: |
| Charcoal |
| |
+------------+
for example 14
itue.g.
scru-/-mpt-/-ious
)Jawaban:
Python 2 ,
306304283279 byteCobalah online!
sumber
L=len
untuk menyimpan total 2 byte ...7, 3, "Three Is The Magic Number!"
) menghasilkan halaman kosong terkemuka.Arang ,
10583 byteCobalah online! Tautan adalah untuk
menyatakanversi kodeⅈ
ⅉ
yang tidak dapat ditangani olehdeverbosifierdanoperator nilary. Jika memimpin baris kosong dapat diterima, saya bisa turun ke 76 byte:Penjelasan:
Masukkan lebar
q
dan tinggi ke dalamh
.Pindah ke posisi yang akan memicu kotak pertama untuk ditarik, tetapi tanpa menghasilkan margin atas.
Lingkari semua kata dalam string input.
Ulangi saat kata terlalu lebar untuk dimasukkan ke dalam kotak.
Dorong sebanyak mungkin kata yang cocok dengan tanda hubung tambahan.
Awali tanda hubung ke seluruh kata.
Tekan sisa kata.
Lingkari semua kata yang ditulis dengan tanda penghubung.
Periksa apakah kata tersebut sesuai dengan baris saat ini.
Jika demikian maka cetak spasi.
Kalau tidak, pindah ke awal baris berikutnya.
Periksa apakah kami membutuhkan kotak baru.
Jika demikian maka gambarlah kotak itu.
Akhirnya, cetak kata.
sumber
Perl 5 ,
203182 +1 (-a
) = 183 byteCobalah online!
sumber
SOGL V0.12 , 92 byte
Coba Di Sini!
sumber
JavaScript (ES8), 242 byte
Terima kasih kepada @ Tvde1 untuk melaporkan bug
Cobalah online!
Berkomentar
sumber
12
dan7
, beberapa baris / kata dibalik.Jelly , 93 byte
Sebuah program penuh mengambil tiga argumen (
text
,width
,height
) yang mencetak halaman.Cobalah online! NB Terlalu tidak efisien untuk menjalankan contoh dari OP dalam batas 60 detik.
( 97 byte jika baris kosong antara halaman sebenarnya merupakan persyaratan)
Bagaimana?
sumber
PHP, 299 byte
Jalankan dengan
php -nr '<code>' <width> <height> '<text>'
atau atau coba online .sumber