Tujuan Anda adalah untuk menghasilkan bagan pai seni ASCII. Ini adalah kode-golf, sehingga program terpendek (menghitung byte dari kode sumber, bukan karakter) menang.
Perangkat lunak eksternal atau API tidak diizinkan. Hanya yang asli dari setiap bahasa.
Sudut awal dan arah (searah jarum jam / berlawanan arah jarum jam) dari lingkaran tidak penting. Outputnya bisa terlihat oval karena ketinggian karakter selalu lebih tinggi dari lebarnya.
"Latar belakang" (karakter di sebelah kiri atau kanan pai) harus spasi.
Sebagai input, Anda memiliki tiga variabel (silakan kirim kode untuk menginisialisasi. Inisialisasi variabel-variabel ini tidak dihitung dalam skor Anda):
k
: Array karakter. Setiap karakter adalah karakter yang harus digunakan pada diagram lingkaranv
: Array mengapung. Ini persentase dari setiap karakter. Panjangnyav
sama dengan panjangk
. Jumlah elemen itu selalu 1.0r
: Integer> 1. Ini adalah jari-jari diagram lingkaran.
Bonus: Kurangi 20% dari skor Anda jika bisa output pai lengkap (dalam kasus ).
s=lambda k,v,a:' 'if not v else k[0]if a<v[0]else s(k[1:],v[1:],a-v[0])
dan menggunakan tanda titik dua untuk meletakkan pernyataan if pada satu barisif x*x+y*y<r*r:a=atan2(y,x)/pi/2+.5;t=t+s(k,v,a)
JavaScript, 259
Bekerja di Firefox scratchpad.
Contoh pertama
Memasukkan :
Keluaran:
Contoh kedua:
Memasukkan :
Keluaran:
sumber