ボードが与えられたら、最短のプログラムまたは関数を記述して、プレーヤーの視界に入っているキャラクターを表示または返します。視力を妨げるキャラクターと交差することなく、キャラクターとプレイヤーの間に線を引くことができる場合、キャラクターは見えます。
入力:
@プレイヤーの位置を表します。入力にはこれらの1つだけがあります。- 正規表現に一致するキャラクターは
[#A-Z]視力をブロックします。 - 一致
[ a-z]するすべてのキャラクターが視覚を許可します。 - 無効な文字はありません
- 長方形の入力が保証されます
行は次のように定義されます。
- ベクトルを大きさと方向に定義する
- 方向は、N、NE、E、SE、S、SW、W、NWのいずれかです。
- 大きさは、その方向に沿って数える文字数です
- 初期ベクトルをd 1と呼びます。2番目のベクトルはd 2と呼ばれます
- d 1またはd 2のいずれかは、次の大きさでなければなりません
1。もう一方はどんな大きさでも構いません - d 1の方向はd 2の方向に隣接している必要があります(例:NおよびNE)
行は、d 1、次にd 2、d 1、d 2 ...を適用することによってマークされたパスに沿ったすべての文字であると定義されます。
サンプルライン(.sで指定):
d 1 =(大きさ:4、方向:E)
d 2 =(大きさ:1、方向NE)
.....
.....
.....
@....
出力:
- 適切な位置に表示される各文字は、
.スペースの代わりになります。 - 各非表示文字のスペース。
サンプル入力:
@
K
J
L
o
対応する出力:
@.........
....K.....
.J.....
..........
.. .L.....
.. . ....
... .. ...
... .. ..
... . .
.... ..
サンプル入力:
B###M# by
#Q # Zmpq
# # aaa
@ m #
# ##P#
# ####
# ####
#M ###
######
対応する出力:
.B #M
.# .. Z pq
.#.#.aaa..
@..m.#
#.##P#
.#
.#
M.
#
サンプル入力:
w
O l gg rT
QQL Ag #b
qqqqq XqQ
x V# f@aa
Y aaa
uU E l TaKK
e dd FF d opi
e d
対応する出力:
.......... .....
......... .....
O..l...gg..rT
...QQL......Ag..#b..
...qqqqq.........XqQ
#.f@aa......
Y........aaa.....
...uU..E..l.TaKK....
d..FF.d.op
.... .d. ...
3
OK ...コウモリ、あらゆる種類のファンギ、カビ、ヘビ、レイスでさえも視界を遮りますが、巨大な模倣物、丘のオーク、マストドン、他のあらゆる種類の生物、さらには火の渦はそうではありませんか?
—
ジョンドヴォルザーク14年
@JanDvorak私は怠け者で、ブロックするために大文字を選びました。トールモンスターとショートモンスターのような並べ替え。どちらを見渡せますか あ、はい。
—
ジャスティン14年
量子力学については知りませんが、コウモリとノームのミイラは簡単な取引かもしれません。ただし、模倣によって事態はさらに複雑になる可能性があります。また、これらの3匹のアリは楽しいかもしれません。北東の大規模な分類されたモンスターのグループは、あなたについて既に知っているかもしれません。うん...それは厄介かもしれません。#3-私のテレポレーションスクロールはどこですか?おっと、それは鎧を破壊しました。
—
ジョンドヴォルザーク14年
興味があるだけの観測が、私は右の「行」のあなたの定義を理解している場合でも、表示されませんいくつかの正方形があるように、それが見えずに障害物が。たとえば、プレーヤーが(0、0)にいる場合、(5、12)の正方形にはどの線でも到達できません。たとえば、任意の2点間の線を引くためにBresenhamの線アルゴリズムの標準的な実装を指定し、正方形とプレーヤーとの間の線が障害物と交差する場合は不明瞭な正方形を定義する方が理にかなっているかもしれません。
—
イルマリカロネン14年
@IlmariKaronenあなたは絶対に正しいです。それは私が好きな方法です。:-)。
—
ジャスティン14年