Pola di bawah ini akan membentuk dasar dari tantangan ini.
/\
\/
/\
/ \
/ \
/\/ \/\
\/\ /\/
\ /
\ /
\/
/\
\/
Diberikan lebar dan tinggi input, masing-masing >=1
, menampilkan pola seni ASCII di atas berulang kali, bergabung (dan tumpang tindih) di berlian kecil.
Misalnya, ini adalah input dengan width = 2
dan height = 1
:
/\ /\
\/ \/
/\ /\
/ \ / \
/ \ / \
/\/ \/\/ \/\
\/\ /\/\ /\/
\ / \ /
\ / \ /
\/ \/
/\ /\
\/ \/
Berikut ini adalah input width = 3
dan height = 2
:
/\ /\ /\
\/ \/ \/
/\ /\ /\
/ \ / \ / \
/ \ / \ / \
/\/ \/\/ \/\/ \/\
\/\ /\/\ /\/\ /\/
\ / \ / \ /
\ / \ / \ /
\/ \/ \/
/\ /\ /\
\/ \/ \/
/\ /\ /\
/ \ / \ / \
/ \ / \ / \
/\/ \/\/ \/\/ \/\
\/\ /\/\ /\/\ /\/
\ / \ / \ /
\ / \ / \ /
\/ \/ \/
/\ /\ /\
\/ \/ \/
Aturan dan I / O
- Input dan output dapat diberikan dengan metode apa pun yang mudah .
- Anda dapat mencetaknya ke STDOUT atau mengembalikannya sebagai hasil fungsi.
- Program lengkap atau fungsi dapat diterima.
- Berapapun ruang kosong ekstranus dapat diterima, asalkan karakter berbaris dengan tepat.
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
Jawaban:
Kanvas ,
2625242118 byteCoba di sini!
-3 byte dengan memperbaiki
m
kanvas yang tidak berulangPenjelasan:
sumber
JavaScript (ES8),
167161159 byteNB: Ini adalah pengkodean polanya. Lihat jawaban saya yang lain untuk pendekatan matematika yang lebih pendek.
Mengambil input sebagai
(width)(height)
.Cobalah online!
Bagaimana?
Kami menyandikan bagian atas pola dengan angka:
\
/
Ini memberi:
Untuk bagian bawah, kami menggunakan baris4,3,2,0 dengan
/
dan\
terbalik.sumber
JavaScript (ES6), 139 byte
Ini menggunakan pendekatan yang sangat berbeda dari jawaban awal saya, jadi saya memposting ini secara terpisah.
Mengambil input sebagai
(width)(height)
.Cobalah online!
Bagaimana?
Untuk semua sel lain, kami menghitung:
Kami menggambar
"/"
jika:Kami menggambar
"\"
jika:Atau kita menggambar ruang jika tidak satupun dari kondisi ini terpenuhi.
sumber
C ++ (gcc) , 137 byte
Cobalah online!
Penjelasan
sumber
#include
Haskell , 179 byte
Cobalah online!
Haskell , 181 byte
Cobalah online!
sumber
reverse.map(map k)<>id
lebih(++).reverse=<<map(map k)
menghemat 3 byte di kedua solusi.map t
dapat menjadit<$>
dantake$10*x+2
menyimpan byte lain juga dan akhirnya Anda dapat menggunakancycle"\\ /"!!n
lebih"\\ /"!!mod n 3
- sekarang yang kedua lebih pendek :) Coba online!Arang ,
242220 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Gambarlah seperdelapan dari pola aslinya.
Gandakan itu tiga kali untuk menyelesaikan pola aslinya.
Salin beberapa kali secara horizontal.
Salin jumlah yang diperlukan beberapa kali secara vertikal.
sumber
Powershell, 146 byte
Penjelasan
Polanya adalah array 10x10 karakter:
Naskah:
Dua hal untuk golf:
replace
.sumber
Perl 5
-p
, 148 byteCobalah online!
sumber
PHP, 159 byte
pola yang diambil dari mazzy; diterjemahkan ke 1-2-3, dikonversi ke base26 -> diterjemahkan oleh program
membutuhkan PHP 5.5 atau yang lebih baru. Jalankan dengan
-nr
atau coba online .menghitung mungkin lebih pendek (seperti untuk Arnauld). Saya mungkin melihat itu.
sumber
Kotlin ,
196135 byteDisimpan 61 byte berkat saran ASCII-only untuk menggunakan algoritma C ++ AZTECCO.
Cobalah online!
sumber
Python 3 ,
194192187127 byteSolusi @ ASCII-only:
Cobalah online!
Solusi Asli
Cobalah online!
-2 byte terima kasih kepada @Black Owl Kai yang menunjukkan bahwa atasan dan bawahan dapat diakses dari array yang dihasilkan alih-alih dalam variabel terpisah.
-5 byte lebih banyak berkat @Black Owl Kai menggunakan cara yang lebih kreatif untuk menyimpan berlian
Menghasilkan bagian ini dari setiap berlian:
A
/\
ditambahkan di akhir setiap baris untuk menyelesaikannya. Kemudian,/
s dan\
s ditukar untuk membentuk bagian atas setiap berlian, dan urutan garis dibalik untuk membentuk bagian bawah. Akhirnya, ia menambahkan baris paling atas/\
s dan baris paling bawah\/
s untuk melengkapi gambar.sumber
+=
/*=
tugas dan membalik seluruh berlian secara terbalik, membuat string terakhir lebih mudah disimpan