ボウボーマン
o
/( )\ This is Bob.
L L Bob wants to be an archer.
#############
.
/ \ <--- bow So he bought himself a
(c -)-> <--- arrow nice longbow and is about
( )/ <--- highly focused Bob shoot at a target.
L L
#############
___________________________________________________________________________________________
sky
Bob is a smart guy. He already knows what angle and
velocity his arrow has / will have. But only YOU know
the distance to the target, so Bob doesn't know if he
will hit or miss. This is where you have to help him.
. +-+
/ \ | |
(c -)-> | |
( )/ +++
L L |
###########################################################################################
仕事
あなたの仕事は、ボブがターゲットに当たったり見逃したりするASCIIアート画像をレンダリングすることです。計算の場合:
- プログラムは
arrow_x,angle,velocity,distance
、コンマ区切りの入力として任意の順序で受信します。 - 1つのASCII文字が等しい
1m
。 - 最後の行の最初の文字には座標
(0,0)
があるため、地面(としてレンダリングされる#
)はにありy=0
ます。 - ボブは常に地面に立ち、彼の
y
位置は変わりません。 - 最大値はありません
y
。ただし、矢印の頂点はレンダリングされた画像内に収まる必要があります。 - すべての入力は10進整数として提供されます。
- 計算中に、矢印が点であると仮定します。
- 矢印の原点は、
>
射撃ボブの矢じりです(上記参照)。したがってarrow_x
、計算する必要がありますarrow_y
。出力のボブの左足はx
座標と一致する必要があります。射撃ボブの。 distance
あるx
対象者の座標足。(つまり、ターゲットの中央)。- すべての測定値は、それぞれメートルと度で提供されます。
- 注意:射撃ボブは決してレンダリングされず、計算にのみ使用されます!2つの有効な出力ボブについては、以下を参照してください
- ターゲットを押すと、矢印のパスが左端の2つのターゲット壁(
|
)のいずれか((distance-1,3)または(distance-1,4)のいずれかと交差することを意味します。ヒットする壁の代わりにX。ターゲットは常に同じ高さで、そのx位置のみが変更できます。コーナーヒットまたは空からターゲットに落ちる矢印はカウントされません。 - 標準アースgが適用されます(9.81 m / s ^ 2)。
distance+1
フィールドの終わりです。その後、すべてが失敗し、矢印はレンダリングされません。- 他の方法(
distance-1
など)で矢印がターゲットに当たった場合、矢印はレンダリングされません。
お嬢
これはボブの行方不明のレンダリングの例です(矢印は34mで地面に入り、角度は45°、空中時間は10秒、速度は〜50です-しかし、この出力を引き起こす可能性のある入力がたくさんあります。物理的に「正確な」結果を計算するための通常の式。):
+-+
| |
c\ | |
/( ) v +++
L L | |
###########################################################################################
ヒット
これは、ボブのスコアリングの例です(矢印がターゲットに入ります(=パスを横切ります)):
+-+
>--X |
\c/ | |
( ) +++
L L |
###########################################################################################
例
arrow_x
は7arrow_y
です。常に3です。angle
is30°
または0.523598776
ラジアン。velocity
です13m/s
。distance
20です。
そのため、ターゲットをヒットするには、矢印が(19,3)
またはを横切る必要があり(19,4)
ます。それ以外はすべて失敗です。この場合、矢印はafterで地面に入ります(手段y
はになります<1.0
)。12.9358m = ~13m
1.149s
制限とスコアリング
- これはcode-golfであるため、最短のソリューションが優先されます。ボーナスはありません。
- あなたのプログラム(のようではない機能は)追加の入力が許可されていない、上述した形式の入力を受け入れなければなりません。
- 間違った/無意味な/不可能な入力を処理する必要はありません。
- ご使用の言語の最短の妥当な出力(std、fileなど)に出力します。
- 末尾の空白は気にしません。
- ヒント:出力の幅はです
distance+2
。高さはapex+1
です。
5
与えられた出力の生成に使用される入力を追加できますか?
—
ブルー
関数を投稿できないのはなぜですか?
—
Loovjo
@Mhmdタスクで述べられているように、彼を描く必要があります。
—
mınxomaτ
The left foot of Bob in the output has to match the x coord. of the shooting Bob.
そしてSee below for the two valid output-Bobs
そして、GCSEよりも物理学を取り入れていない(または忘れただけですか?)
—
Blue
@muddyfish軌道方程式をグーグルで検索してください。
—
mınxomaτ