Tulis program atau fungsi yang mengambil bilangan bulat positif dan mencetak atau mengembalikan setumpuk kura - kura seni ASCII yang banyak itu , di mana masing-masing kura-kura lebih besar daripada yang di atasnya.
Khususnya, jika inputnya adalah 1
, outputnya harus:
__
/,,\o
Jika inputnya adalah 2
:
__
o/,,\
____
/,__,\o
Jika inputnya adalah 3
:
__
/,,\o
____
o/,__,\
______
/,____,\o
Jika inputnya adalah 4
:
__
o/,,\
____
/,__,\o
______
o/,____,\
________
/,______,\o
Jika inputnya adalah 5
:
__
/,,\o
____
o/,__,\
______
/,____,\o
________
o/,______,\
__________
/,________,\o
Dan seterusnya dalam pola yang sama untuk input yang lebih besar.
Perhatikan bahwa:
- Kepala
o
kura-kura bawah selalu di sebelah kanan. Kepala kura-kura di atas kemudian bergantian bolak-balik. - Tidak ada garis yang memiliki spasi tambahan.
- Ruang terkemuka berlebihan tidak diizinkan. (Yaitu bagian belakang kura-kura bawah harus di awal garis.)
- Jalur trailing opsional tunggal diizinkan.
Kode terpendek dalam byte menang.
code-golf
string
ascii-art
kolmogorov-complexity
Hobi Calvin
sumber
sumber
,________,
Ketika seseorang mengatakan sesuatu yang tidak masuk akal.Jawaban:
Batch, 256 byte
Perhatikan bahwa baris 1 memiliki spasi tambahan dan baris 4 memiliki dua spasi tambahan.
i
Oleh karena itu berisiecho
perintah dengan jumlah indentasi yang sesuai untuk setiap kura-kura. Sementara ituu
berisi jumlah garis bawah dalam kura-kura alternatif. Kura-kura aneh yang memimpin adalah cased khusus dan kemudian kura-kura yang lain berpasangan.sumber
C, 131 byte
Cobalah online.
Menentukan fungsi yang mencetak kura-kura.
Sangat berat menyalahgunakan lebar dan presisi penentu printf untuk mendapatkan jarak dan mengulangi garis bawah. Setiap kura-kura dicetak menggunakan satu
printf
panggilan:Saya juga memiliki versi berbeda yaitu 144 byte dengan spasi kosong dihapus:
sumber
,_,
dalam kode Anda.Ruby, 100 byte
Solusi rekursif. Cobalah online!
sumber
05AB1E, 45 byte
Cobalah online
sumber
G
-loop sudah dalam versi Agustus 2016, tetapi jika itu,Lv
bisaG
dan keduanyay
bisaN
untuk -1 byte.V ,
57, 5349 byteKarena ini berisi karakter yang tidak patut dicetak, berikut adalah hexdump:
Cobalah online!
Penjelasan:
sumber
0
dan di bawah ini.input > 10
. Di samping catatan, saya tidak sengaja memecahkannya sepenuhnya dengan input0 41c14
. Tidak yakin apakah saya memecahkan kode, atau pelari.-1
sebagai string yang tidak bisa dipikirkan adalah angka. Untungnya, saya tidak harus menangani itu.Perl, 92 byte
91 byte kode +1 untuk
-n
.Membutuhkan
-E
tanpa biaya tambahan.Pemakaian
Berkat @Dada untuk -9 byte dengan re-work-nya!
sumber
perl -nE 'for$i(1..$_){say$"x$_._.($v=_ x(($i-1)*2))._.$/.$"x(--$_-1).($_%2?o:$_?$":"")."/,$v,\\".($_%2?"":o)}'
. Saya mencoba untuk mendapatkan di bawah 100 juga tetapi tidak bisa ...Cheddar , 105 byte
sumber
Retina ,
979188 byteHitungan byte mengasumsikan penyandian ISO 8859-1.
Cobalah online!
sumber
Python 2, 116 Bytes
sumber
lambda m:for i in r...
bukaninput()
R , 150 byte
lebih bersih (menambahkan satu byte)
Struktur dasar secara rekursif menyebut dirinya - memberitahukan nomor terakhir yang akan dipanggil dan level saat ini. Mulai dengan default untuk y = 1, jadi hanya perlu satu variabel untuk panggilan awal. Mendefinisikan dua nilai yang sering digunakan dengan cepat. Maka itu hanya mengulangi semua yang diperlukan beberapa kali.
Masing-masing secara implisit menguji apakah akan menambahkan kepala ke kanan atau kiri dan menempatkannya dengan tepat.
sumber
#
sebelum judul di editor markdown untuk memformatnya seperti jawaban lainnya.TSQL, 189 byte
Sekarang dengan penerimaan input - terima kasih kepada @PatrickRoberts
Biola
sumber
i
dengan biaya 4 byteC,
328238234215 byte:Implementasi rekursif menggunakan banyak pemformatan string dan
memset
fungsi builtin . Akan mencoba dan golf ini seiring waktu sebanyak yang saya bisa.C Online! (Ideone)
sumber
17
dan di luar, logika pecah karena beberapa alasan, dan karena itu, begitu juga kura-kura. Saat ini saya mencoba mencari tahu apa yang salah.'c'
) dengan kode ASCII mereka masing-masing untuk satu karakter :)Java 1.7, 238 byte
Satu set dua fungsi: pertama iterasi atas input (# kura-kura), kedua memfasilitasi dalam membangun urutan karakter berulang secara rekursif (yaitu ruang terkemuka, bagian belakang dan perut kura-kura).
Tidak Disatukan:
Menjalankannya! (Ideone)
Saya berasumsi tidak apa-apa untuk mengecualikan definisi kelas dari jumlah byte.
Saya mungkin bisa bermain golf ini sedikit lebih jauh dengan membalikkan urutan iterasi dari loop (membangun dari penyu bawah) dan / atau dengan menjadi sepenuhnya rekursif seperti beberapa jawaban lainnya.
Catatan untuk diri sendiri: Java benar-benar tidak memiliki singkatan untuk mengulang n karakter ...
sumber
Python,
137120113110 byteTidak Disatukan:
Kepala-kepala itu keras.
sumber
('o','')[b]
, Anda bisa melakukan'o'*(1-b)
(dan'o'*b
untuk('o','')[1-b]
).'0'*-~-1
lebih pendek dari'0'*(1-b)
F #,
218207202196187 bytes.Mencukur sebagian besar byte ini dengan memasukkan variabel
Logikanya dicuri tanpa malu-malu dari jawaban Python ini
Cobalah online.
sumber
CJam , 88 byte
Jadikan kura-kura terbesar terlebih dahulu (karena jika tidak, apa yang akan dilakukan oleh setiap kura-kura lainnya?), Kemudian secara bertahap mengurangi ukurannya sampai yang terkecil dibuat. Bekerja untuk bilangan bulat apa pun yang lebih besar dari 0.
Cobalah online!
sumber
Python 2.7,
255238236 byteMeskipun ini kalah dari kedua solusi Python 2 lainnya, saya menyukai pendekatan rekursif saya:
sunting1: turun beberapa byte dengan menghilangkan beberapa penggantian
sunting2: mencukur 2 byte dengan menyimpan garis bawah sebagai variabel
sumber
Python 2, 147 byte
Cobalah online
sumber
Python 2.7,
139114113130 byteSaya juga menyukai pendekatan rekursif Iguanodon jadi inilah upaya yang sedikit lebih pendek.
SUNTING
Sebuah
25269 byte perkasa golf karena beberapa tips fantastis dari Destructible Semangka. Terimakasih banyak!Pikirkan itu mungkin jawaban Python terpendek sekarang :-)sumber
i=input();t(i)
sebagian, karena Anda diizinkan untuk hanya memiliki fungsi.PowerShell ,
10510097878584 byte-21 byte berkat mazzy, si lelaki gila
Cobalah online!
Secara cerdik menggeser variabel yang digunakan
$_--
untuk menghindari penggunaan($_+1)
blok berulang untuk menghemat beberapa byte. Ini juga mengubah argumen tunggal menjadi string yang kemudian dilemparkan ke int ketika digunakan dalam rentang untuk beralih melalui jumlah kura-kura. Trik terbesar sekarang adalah tingkat ke-2 dari jarak penyu hanya menambah setiap baris lainnya dengan mengurangi$_%2
(yaitu 0 jika genap, 1 jika aneh) dari row_count saat ini.Kalau tidak, itu banyak indeks matematika untuk mendapatkan yang tepat
_
dandiperhitungkan, termasuk penghitung lag dalam bentuk
$i++
, dan sekarang hanya indeks daftar tunggal untuk menempatkan kepala di sisi yang benar.sumber
ES6 (JavaScript), 140 byte
Kode
Uji
sumber
Kanvas , 26 byte
Coba di sini!
sumber