2つの平行なミラーで構成される廊下がある場合はどうなりますか?
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
今、私たちはそれをレーザーで照らします...
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \|
| /|
| / |
ああ、見て。終わりに向かって、そこに跳ね返りました。
2つのレーザーを描画しますが、反対方向に進むとどうなりますか?
| \ / |
| \ / |
| \/ |
| /\ |
| / \ |
| / \ |
| / \ |
|/ \|
|\ /|
| \ / |
うーん、彼らはそこに会うようには見えなかった。それは便利です。両方のレーザーが同じスペースを占有するとどうなりますか?
| \ / |
| \ / |
| \ / |
| X |
| / \ |
| / \ |
| / \ |
| / \|
|/ /|
|\ / |
それはかなり明白だったと思う?
これらの図を手で描くのはかなり面倒です(これを信じてください)。おそらくいくつかのコードが私たちのためにそれを行うことができますか?
- 2つのバウンスする交差するレーザーを使用して、2つの平行ミラーを出力するコードを作成します。
- 入力(すべて整数):
- 廊下の幅
- 廊下の長さ
- 右向きレーザーの開始位置(ゼロインデックス、幅未満でなければなりません)
- 左方向レーザーの開始位置(ゼロインデックス、幅未満でなければなりません)
- 処理する
- レーザーが正しければ、次の行の右側に1スペース描画されます。
- レーザーが進行中のままの場合、次の行の左に1スペース描画されます。
- レーザーが横方向に移動できない場合、レーザーの方向は変わりますが、位置は変わりません。
- 両方のレーザーが同じインデックスにある場合、そのインデックスに大文字のXを印刷します。
- 出力
- 複数行の文字列
- 各行はパイプ文字(|)で始まり、終わる
- 右方向のレーザーはバックスラッシュ(\)で示されます
- 左向きのレーザーはスラッシュ(/)で示されます
- 2つのレーザーの交差点は、大文字のXで示されます。
- どんな言語でも
- TIOリンクを見たい
- 最小バイト数で修正しようとしています
テストケース
幅:6長さ:10右向き:1左向き:4
| \ / |
| \/ |
| /\ |
| / \ |
|/ \|
|\ /|
| \ / |
| \/ |
| /\ |
| / \ |
幅:6長さ:10右向き:0左向き:1
|\/ |
|/\ |
|\ \ |
| \ \ |
| \ \ |
| \ \|
| \/|
| /\|
| / /|
| / / |
幅:4長さ:10右向き:2左向き:0
|/ \ |
|\ \|
| \ /|
| X |
| / \|
|/ /|
|\ / |
| X |
|/ \ |
|\ \|
幅:20長さ:5右向き:5左向き:15
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
幅:5長さ:6右向き:2左向き:2
| X |
| / \ |
|/ \|
|\ /|
| \ / |
| X |
幅:1長さ:2右向き:0左向き:0
|X|
|X|