STDOUTに、バウンドするボールの進む方向を示すパターンを印刷します。
次の仮定が行われます。
- ボールは左上隅から始まり
0, 0
ます。初期速度はゼロです。 - 重力は
9.8ms^-2
正確に、床に向かっています(y正)。 - ボールの重さは
500g
正確です。 - 可変軌道を追加するための適切な計算を追加する必要がない限り、ボールは床に対して45度または135度でバウンドします。(ボーナス任意ポイント!)
- ボールは、
ばね定数の反発係数/弾力定数を0.8
正確に持っています。 - ボールは完全に球形で、バウンドしても変形しません。
- 部屋の高さは25文字、幅は130文字です。各xとyは1メートルで、各ボールの位置は個別のサンプルを表します。正確な時間は意図的に指定されていませんが、ディスプレイはボールのパスを十分に明確にする必要があります。出力には、最終的な位置だけでなく、ボールのパスが表示されます。
- フロアとボールは、STDOUTの文字を使用して示す必要があります。ボールや床面がないことをスペース文字で示してください。
- 計算では小数点以下3桁に丸めることを想定できます。(純粋な整数を使用するソリューションは、このルールに特に関心があります。)
- シミュレーションは、ボールが床から動かないか、部屋から出たときに停止します(
x > width of area
。) - プログラムはボールのパスをシミュレートする必要があります。単にファイルからロードしたり、プログラムで何らかの方法でエンコードしたりするのではありません。このためのテストは、オプションで定数の1つを変更することです。プログラムが新しい正しい結果を計算しない場合は、資格がありません。
出力例:
*
*
*
*
*
*
*
*
*
* ***********
* ***** ****
* **** ***
* *** ***
* ** **
* *** **
* ** ** *********
* * ** **** ****
* ** * ** **
* * ** ** **
* * * ** ** ********
* ** * ** ** **** ****
* * ** ** ** ** **
* * ** ** ** ** ** **
** ** ** ** ** ** **
* **** **** ***
**********************************************************************************************************************************
勝者の決定。私は答えを受け入れます:
- 上記で定義されたルールを満たします。
- ボーナス機能が考慮されます。
- 最短かつ最もエレガントです(主観的な決定)。
1
入力および/または開始速度(エネルギー?)がない、または私は盲目ですか?今それを見ると、ボックスを描いてボールが静止していると言うか、画像をgzipしてすべての実行で表示できます。
—
shiona 2013年
しかし、ボールが45°の方向に対して0.0001 m / s(または十分に小さいもの)の速度であると判断した場合、ボールは選択した解像度で地面から離れることはできません。単一の回答をハードコーディングすることを不可能にするために、問題には常に何らかの種類の入力(ユーザー、ランダムなど)があるべきだと思います。
—
shiona 2013年
左側の星はY軸ですか、それともボールのパスを示していますか?それらがボールのパスをマークする場合、この物理シミュレーションは、ボールが右側にモーションコンポーネントを持たないため、少し怪しいように見えます。したがって、平らな床で跳ねるとき、まっすぐ上に跳ね返り、右には跳ね返らないはずです。また、角度はバウンスごとにフラットになります(右側にモーションコンポーネントがある場合)。
—
Thomas W.
これですか
—
ポールR
code-golf
、code-challenge
それとも何ですか?適切にタグ付けしてください。
ボールが単純にドロップされたとすると、何がボールを右に動かすのですか?なぜ単純に上下しないのですか?
—
DavidC 2013年