現金が不足しているため、世界最大のデジタルドーナツ企業であるThe Donut Shop™にドーナツを構築するためにサインアップしました。
現在、取引基準が非常に厳しいことを考えると、これらのドーナツを作成するために可能な限り短いコードを作成して、それらを作成したソースコードがパケットの外側に配置できるようにする必要があります。
チャレンジ
4つの入力、外側のリングの半径、内側のリングの半径、可能なスプリンクル、およびセルにスプリンクルが発生する可能性がある場合、正しい内側および外側の半径を持つスプリンクルで覆われたドーナツを出力します。
- 入力は、希望する方法(関数の引数、標準入力、プログラム引数)および任意の順序で取得できます。
- スプリンクルは、スプリンクルタイプごとに1文字の形で与えられます
^+*-
スプリンクル入力は、4つのスプリンクルのリストであるように^
、+
、*
、-
- 振りかける可能性は、0〜1の浮動小数点値として入力されます。例:
0.1
、0.23
- 出力をstdoutまたは同等のものに出力する必要があります。
- ドーナツの端に振りかけることはできません。
- スプリンクルの各タイプは、各セルに等しく存在する可能性がなければなりません。
- 半径は1セル単位で与えられます。
- 内側の半径が0または外側の半径のいずれかに等しい場合、ドーナツにはリングがないと言われます。
- 両方の半径は負でない整数になります。
- ドーナツの内側と外側のエッジは、ハッシュ(
#
)を使用して表す必要があります 半径と円の中心を指定して、点が円内にあるかどうかを確認するテストは次のとおりです。
(x-center)**2+(y-center)**2 < radius**2
出力付きの入力例
(外半径、内半径、振りかける、振りかける可能性)
10、4、「^ + *-」、0.1
######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########
5、2、「:^ + *」、0.9
##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
これはコードゴルフで、バイト単位の最短回答が勝ちです
10, 4
、すでに無効になってい5, 2
ます。答えにコメントを残そうとしていましたが、例のディメンション以外のディメンションについては、出力がどのように見えるかを実際には理解していないことに気付きました。元のアイデアを答えからの出力に合わせて変更したい場合、それはあなた次第ですが、課題はどちらの方法でも境界線を描く方法を明確に定義する必要があります。