Suatu hari, putra saya meminta saya untuk membangun tangga menggunakan balok Lego-ish. Dan saya datang dengan sesuatu seperti ini:
Kemudian anak saya meminta saya untuk sebuah program menggunakan jumlah byte terkecil yang menghasilkan tangga serupa di layar komputer. Saya tidak pandai kode-golf , jadi saya butuh bantuan Anda. Saya membutuhkan program yang:
- Menerima bilangan bulat positif dengan jumlah level yang perlu dimiliki tangga.
- Menghasilkan gambar tangga, dengan pola yang Anda lihat pada gambar.
Outputnya akan dalam format teks tetapi batu bata dapat dibedakan satu sama lain. Misalnya, Anda dapat menggunakan karakter '█' sebagai setengah blok dan melukisnya dengan warna apa pun yang Anda inginkan, atau cukup pilih karakter apa pun yang Anda pilih.
Pembatasan:
- Blok harus terdiri dari tiga warna berbeda, yang akan digunakan selama mungkin (jika inputnya 1 atau 2 tidak ada blok yang cukup untuk menggunakan ketiga warna). Jika Anda ingin, Anda dapat menggunakan karakter '░▒▓', misalnya, atau hanya memilih tiga karakter yang berbeda.
- Tidak ada dua blok dengan warna atau pola yang sama yang dapat bersebelahan dalam satu baris.
Putraku tidak terlalu peduli tentang jejak ruang atau garis baru selama tangga ditarik.
Contoh (maaf untuk pilihan karakter yang buruk):
Input: 1
Output:
██
Input: 2
Output:
██
▓▓
Input: 3
Output:
██
▓▓
██░░
Input: 5
Output:
██
██
██░░
██░░
██░░▓▓
Jawaban:
Jelly ,
21 1916 byteProgram lengkap mencetak hasilnya.
Penggunaan
00
,,11
dan22
sebagai blok.Cobalah online!
Bagaimana?
sumber
Python 2 , 55 byte
Cobalah online!
Siklus di antara blok
22, 44
, kecuali baris paling atas00
. Misalnya, pada input 10, dicetakMencetak baris
i=2,3,..
dengan panjang yang bertambah dengan menciptakan ruang untuk panjang ganjil, mengulangi waktu polai
, dan memotong panjangi
. Pola ini2244
untuk semua baris kecuali yang pertamai=2
yang itu0
. Ini dicapai dengan ekspresi aritmatika2%i*1122
.sumber
JavaScript (ES6), 80 byte
Tampilkan cuplikan kode
JavaScript (ES6), 87 byte
Solusi sebelumnya.
sumber
SOGL ,
31282725 bytePenjelasan:
menggunakan teknik ini
Contoh output untuk 9:
non-bersaing, 22 byte
Perintah
m
telah didokumentasikan pada komit SOGL ke-1 , tidak diimplementasikan.sumber
05AB1E ,
2221201817 byteMenggunakan fakta menarik itu
4^(N+2)/5 = [3,12,51,204,...] = b[11,1100,110011,11001100,...]
Cobalah online!
Penjelasan
sumber
PHP,
6159bekerja sangat mirip dengan versi python tetapi menggunakan ketiga warna jika memungkinkan. Tidak ada garis baru.
sumber
aa<?for...
.Pyth , 29 byte
Uji secara online!
Penjelasan
Saya yakin ada banyak cara untuk mempersingkat kode itu, tetapi saya raja yang lelah sekarang ... Akan mencoba nanti.
sumber
Batch, 125 byte
Catatan: Simpan ini di CP437 atau CP850 atau semacamnya. Bekerja dengan memutar warna setiap waktu. Karena saya tidak bisa memetakan string untuk melakukan rotasi, saya menggunakan empat penggantian, menggunakan spasi sebagai tahap sementara. Ini kemudian juga memungkinkan saya untuk awalan spasi setiap baris, sehingga dua spasi berubah menjadi blok baru. Output sampel:
sumber