Twoim celem jest wygenerowanie graficznego wykresu kołowego ASCII. To jest golf golfowy, więc wygrywa najkrótszy program (liczący bajty kodu źródłowego, a nie znaki).
Żadne zewnętrzne oprogramowanie ani interfejsy API są niedozwolone. Tylko rodzime dla każdego języka.
Kąt początkowy i kierunek koła (zgodnie z ruchem wskazówek zegara / przeciwnie do ruchu wskazówek zegara) nie są ważne. Wynik może wyglądać owalnie, ponieważ wysokość znaku jest zawsze większa niż jego szerokość.
„Tło” (znaki po lewej lub po prawej stronie ciasta) muszą być spacjami.
Jako dane wejściowe masz trzy zmienne (proszę podać kod inicjujący. Inicjalizacja tych zmiennych nie jest liczona w wyniku):
k
: Tablica znaków. Każda postać jest tą, która musi być użyta na wykresie kołowymv
: Tablica pływaków. To procent każdej postaci. Długośćv
jest równa długościk
. Suma jego elementów wynosi zawsze 1,0r
: Liczba całkowita> 1. Jest to promień wykresu kołowego.
s=lambda k,v,a:' 'if not v else k[0]if a<v[0]else s(k[1:],v[1:],a-v[0])
i używając średnika, aby umieścić instrukcję if w jednym wierszuif x*x+y*y<r*r:a=atan2(y,x)/pi/2+.5;t=t+s(k,v,a)
JavaScript, 259
Działa w scratchpad Firefox.
Pierwszy przykład
Wejście :
Wynik :
Drugi przykład:
Wejście :
Wynik :
źródło