Kemungkinan siapa pun yang menggunakan Twitter beberapa bulan lalu akan tahu tentang 'Howdy! Saya sheriff meme X ". Di mana gambar sederhana sheriff digambar dengan emoji, dan perubahan agar sesuai tema. Jadi saya pikir sudah waktunya untuk Sheriff of Code Golf. Ini dia:
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
Yang satu ini khususnya memiliki 'piksel' yang lebar satu karakter, dan satu karakter tinggi. Untuk menghasilkannya, argumennya adalah 1 dan 1.
Bagaimana jika dia ingin lebih lebar dari tinggi?
######
##########
######
######
######
##
##########
## ## ##
## ## ##
## ## ##
##
######
## ##
## ##
## ##
## ##
Dia memiliki tinggi 1, tetapi lebar 2.
Aturan:
- Tantangannya adalah menulis kode untuk menggambar Sheriff of Code Golf Anda sendiri, dengan karakter sesedikit mungkin.
- Gunakan bahasa pemrograman apa pun yang diinginkan hati Anda.
- Kode Anda harus mengambil dua argumen, yang keduanya bilangan bulat, untuk tinggi dan lebar Sheriff.
- Outputnya harus terdiri dari spasi putih tunggal untuk latar belakang, dan karakter lain yang Anda pilih untuk Sheriff. (Saya telah menggunakan hash untuk kasus uji, tetapi tidak masalah apa yang Anda gunakan).
- Seharusnya dimungkinkan untuk ketinggian menjadi bilangan bulat negatif, membalikkan gambar.
- Lebar dapat berupa bilangan bulat negatif, tetapi karena gambarnya simetris, itu akan identik dengan nilai positifnya.
- Mengejar ruang putih tidak relevan.
- Jika salah satu argumen adalah 0, dimensi itu 'diratakan' menjadi satu baris atau kolom. Panjang garis ini adalah argumen lain yang dikalikan dengan tinggi, atau lebar Sheriff, masing-masing.
- Jika kedua argumen adalah 0, kedua baris 'diratakan', meninggalkan karakter positif tunggal.
- Tidak penting, tetapi harap sertakan tautan ke juru bahasa online seperti tio.run
- Outputnya harus berupa string, lebih dari beberapa baris, atau output ke konsol.
Uji Kasus
1 tinggi, 1 lebar
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
2 tinggi, 1 lebar
###
###
#####
#####
###
###
###
###
###
###
#
#
#####
#####
# # #
# # #
# # #
# # #
# # #
# # #
#
#
###
###
# #
# #
# #
# #
# #
# #
# #
# #
1 tinggi, 2 lebar
######
##########
######
######
######
##
##########
## ## ##
## ## ##
## ## ##
##
######
## ##
## ##
## ##
## ##
2 tinggi, 2 lebar
######
######
##########
##########
######
######
######
######
######
######
##
##
##########
##########
## ## ##
## ## ##
## ## ##
## ## ##
## ## ##
## ## ##
##
##
######
######
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
-1 tinggi, 1 lebar
# #
# #
# #
# #
###
#
# # #
# # #
# # #
#####
#
###
###
###
#####
###
1 tinggi, -1 lebar
###
#####
###
###
###
#
#####
# # #
# # #
# # #
#
###
# #
# #
# #
# #
0 tinggi, 0 lebar
#
1 tinggi, 0 lebar
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
0 tinggi, 2 lebar
##################
Bersenang-senanglah, kalian semua!
Jawaban:
JavaScript (ES6), 171 byte
Mengambil input dalam sintaks currying
(width)(height)
. Mengembalikan array string.Cobalah online!
Bagaimana?
Hanya separuh kiri sheriff yang dikodekan sebagai bitary biner, termasuk kolom tengah:
sumber
Python 2 ,
228218202189173 byteCobalah online!
Alternatif:
Python 2 , 173 byte
sumber
Perl 5 ,
169166157 byteCobalah online!
Mungkin lebih banyak yang bisa diperoleh dengan sedikit mengutak-atik.
sumber
split
, saya menggunakannya sekarang dan menyimpan dua byte. Juga mencukur habis dengan menghilangkan'
s di sekitar indeks. Tidak bisa mulaisay
bekerja.-a
, kehilangan 9 byte lebih banyak dengan itu.say
dengan-M5.010
, tetapi tidak semua orang suka, Anda dapat menggunakan-l
dan menyimpannyaprint
, tetapi jika tidak, Anda dapat menggunakan baris baru literal atau$_.$/
untuk -1. Senang melihat pegolf Perl lain!say
tidak berfungsi karena baris baru ditambahkan dimap
sehingga untuk menggunakannya memerlukan panggilan yang sedikit berbeda. Saya juga menyadari bahwa ketika kode Anda berakhir pada variabel dan Anda menggunakan-p
atau sesuatu yang dapat Anda gunakan@;
karena itu termasuk: Cobalah secara online! Semoga Anda tidak keberatan dengan komentar saya!Arang , 61 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Masukkan dimensi.
Jika tingginya bukan nol, lingkar di atas bagian kanan sheriff ...
... Mengulangi ketinggian absolut beberapa kali ...
... jika lebarnya bukan nol maka ulangi setiap karakter jumlah absolut kali, jika tidak a
#
.Tetapi jika tingginya nol, maka ulangi
#
5 kali lebar absolut, tetapi setidaknya 1#
.Merefleksikan untuk menghasilkan setengah bagian kiri sheriff.
Jika tingginya negatif, balikkan sheriff.
sumber
Python 2 ,
217216 byteCobalah online!
Riff Pythonic pada pendekatan Arnauld .
Ugh! Sekarang berfungsi untuk semua kondisi tepi ...
sumber
Bersih ,
299275272 byteCobalah online!
sumber
Powershell,
174170 byteTerinspirasi oleh Javascript Arnauld
Tidak digabungkan, dijelaskan, dan diuji skrip:
sumber