Ok, pertanyaan golf pertama saya. Harap bersikap lembut :) Saya tahu ada terlalu banyak teka-teki ascii: P tapi ini dia.
Tugasnya sederhana, gunakan bahasa pemrograman favorit Anda untuk mencetak riak segitiga. Inputnya harus seukuran riak.
Setiap segitiga diberi jarak secara merata. Pada dasarnya, Anda terus menambahkan segitiga sampai tidak ada cukup ruang untuk segitiga terkecil.
Anda diizinkan ruang putih di mana pun Anda inginkan asalkan riaknya sama dengan contoh dengan ukuran yang benar.
Contoh
q)g 1
__
\/
q)g 2
____
\ /
\/
q)g 3
______
\ /
\ /
\/
q)g 4
________
\ __ /
\ \/ /
\ /
\/
q)g 5
__________
\ ____ /
\ \ / /
\ \/ /
\ /
\/
q)g 6
____________
\ ______ /
\ \ / /
\ \ / /
\ \/ /
\ /
\/
q)g 7
______________
\ ________ /
\ \ __ / /
\ \ \/ / /
\ \ / /
\ \/ /
\ /
\/
q)g 8
________________
\ __________ /
\ \ ____ / /
\ \ \ / / /
\ \ \/ / /
\ \ / /
\ \/ /
\ /
\/
Seperti biasa, kode terpendek menang :)
Jawaban:
Pyth, 31 byte
Demonstrasi.
Penjelasan:
sumber
GNU sed -nr, 210
Sebuah awal:
Input adalah bilangan bulat unary positif melalui STDIN, sesuai meta-pertanyaan ini .
Keluaran:
sumber
C, 165 byte
Sebelum bermain golf, langkah-langkah yang merusak keterbacaan:
Ini loop semua karakter dalam persegi panjang yang berisi gambar, dan mengevaluasi persamaan garis yang memisahkan bagian dalam segitiga dari luar, serta yang memisahkan bagian-bagian yang berbeda dari segitiga.
sumber
n,x,y,b,c;main(c,v)char**v;{for(n=atoi(v[1]);y<=n;++y)for(x=-n;x<=n;putchar(x++-n?b>6*y?95:b<6*y-4&c>0&c%4==1?"/\\"[x<1]:32:10))c=(b=2*n-abs(2*x+1))-2*y+2;}
Retina , 182 byte
Mengambil input sebagai unary.
Setiap baris harus menuju ke file sendiri dan
#
harus diubah ke baris baru di file. Ini tidak praktis tetapi Anda dapat menjalankan kode seperti halnya satu file dengan-s
bendera, menjaga#
spidol. Anda dapat mengubah#
's ke baris baru di output untuk dibaca jika Anda inginkan. Misalnya:Kode belum golf dengan baik (belum).
sumber
C - 206 byte
i,j,m,k,a,b;main(i,v)char**v;{m=atoi(v[1])*2;while(k<m*(m/2+1)){i=k/m;j=k%m;a=i*3,b=(i+j)%2;putchar("_\\/ "[j>=a&&j<m-a?0:j>i-2&&b&&j<i*3-1&&j<m/2?1:j<=m-i&&!b&&j>m-a&&j>=m/2?2:3]);if(j==m-1)puts("");k++;};}
Contoh output
sumber
int
. Juga, jika Anda mendeklarasikannya di lingkup global, mereka secara otomatis diinisialisasi ke 0. Daripada memiliki banyakputchar()
panggilan di cabang yang berbeda, Anda dapat menggunakan satu panggilan dan menggantiif
pernyataan dengan operator ternary. Tentu saja menjadi sulit untuk membaca seperti itu, tetapi sepenuhnya dalam semangat situs ini untuk menulis kode yang jelek jika lebih pendek. :)JavaScript ( ES6 ) 165
180 204Jalankan cuplikan di Firefox untuk menguji. Jika mengembalikan string tidak cukup, menggunakan waspada untuk output adalah 2 karakter lebih
sumber