Mục tiêu của bạn là đưa ra một biểu đồ nghệ thuật ASCII. Đây là môn đánh gôn, vì vậy chương trình ngắn nhất (tính số byte của mã nguồn, không phải ký tự) sẽ thắng.
Không cho phép phần mềm hoặc API bên ngoài. Chỉ những người bản địa của mỗi ngôn ngữ.
Góc bắt đầu và hướng (chiều kim đồng hồ / ngược chiều kim đồng hồ) của vòng tròn không quan trọng. Đầu ra có thể trông hình bầu dục vì chiều cao của một nhân vật luôn vượt trội so với chiều rộng của nó.
"Nền" (ký tự ở bên trái hoặc bên phải của chiếc bánh) phải là khoảng trắng.
Là đầu vào, bạn có ba biến (vui lòng đăng mã để khởi tạo nó. Việc khởi tạo các biến này không được tính vào điểm số của bạn):
k
: Mảng ký tự. Mỗi nhân vật là một nhân vật phải được sử dụng trên biểu đồ hình trònv
: Mảng phao. Đó là tỷ lệ phần trăm của mỗi nhân vật. Độ dàiv
bằng với chiều dài củak
. Tổng các phần tử của nó luôn là 1,0r
: Số nguyên> 1. Đó là bán kính của biểu đồ hình tròn.
Bonus: Trừ 20% điểm số của bạn nếu có thể sản lượng của bạn một chiếc bánh không đầy đủ (trong trường hợp ).
s=lambda k,v,a:' 'if not v else k[0]if a<v[0]else s(k[1:],v[1:],a-v[0])
và sử dụng dấu chấm phẩy để đặt câu lệnh if trên một dòngif x*x+y*y<r*r:a=atan2(y,x)/pi/2+.5;t=t+s(k,v,a)