あなたの目標は、ASCIIアートの円グラフを出力することです。これはコードゴルフなので、最短のプログラム(文字ではなくソースコードのバイト数をカウントする)が優先されます。
外部ソフトウェアまたはAPIは許可されていません。各言語のネイティブ言語のみ。
円の開始角度と方向(時計回り/反時計回り)は重要ではありません。文字の高さは常に幅よりも優れているため、出力は楕円形に見えることがあります。
「背景」(パイの左または右の文字)はスペースでなければなりません。
入力として、3つの変数があります(初期化するためのコードを投稿してください。これらの変数の初期化はスコアにカウントされません):
k:文字の配列。各文字は、円グラフで使用する必要があるものですv:フロートの配列。それは各キャラクターの割合です。の長さはの長さvと等しくなりkます。その要素の合計は常に1.0ですr:整数>1。これは円グラフの半径です。
ボーナス:不完全なパイを出力できる場合は、スコアの20%を差し引きます)。
s=lambda k,v,a:' 'if not v else k[0]if a<v[0]else s(k[1:],v[1:],a-v[0])1本のライン上のif文を置くためにセミコロンを使用して、if x*x+y*y<r*r:a=atan2(y,x)/pi/2+.5;t=t+s(k,v,a)