Étant donné un tableau, écrivez le programme ou la fonction la plus courte pour afficher ou renvoyer les personnages en vue du joueur. Un personnage est en vue s'il est possible de tracer une ligne entre lui et le joueur, sans croiser aucun personnage qui bloque la vision.
Contribution:
@représente la position du joueur. Il n'y en aura qu'un dans l'entrée.- tout personnage qui correspond à la
[#A-Z]vision des blocs d' expression régulière . - tout personnage qui correspond
[ a-z]permet la vision. - il n'y aura pas de caractères invalides
- vous avez la garantie d'une entrée rectangulaire
Les lignes sont définies comme suit:
- définir le vecteur comme une grandeur et une direction
- une direction est l'une des N, NE, E, SE, S, SW, W, NW
- une grandeur est le nombre de caractères dans cette direction pour compter
- que le vecteur initial soit appelé d 1 ; le deuxième vecteur soit appelé d 2
- l'un de d 1 ou d 2 doit avoir une magnitude de
1; l'autre peut avoir n'importe quelle ampleur - La direction de d 1 doit être adjacente à la direction de d 2 (par exemple: N et NE)
Une ligne est définie pour être tous les caractères le long du chemin marqué en appliquant d 1 , puis d 2 , d 1 , d 2 ....
Ligne d'échantillonnage (donnée par le .s):
d 1 = (magnitude: 4, direction: E)
d 2 = (magnitude: 1, direction NE)
.....
.....
.....
@....
Production:
- chaque caractère visible dans la bonne position,
.remplace l'espace. - Espace pour chaque personnage non visible.
Exemple d'entrée:
@
K
J
L
o
Sortie correspondante:
@.........
....K.....
.J.....
..........
.. .L.....
.. . ....
... .. ...
... .. ..
... . .
.... ..
Exemple d'entrée:
B###M# by
#Q # Zmpq
# # aaa
@ m #
# ##P#
# ####
# ####
#M ###
######
Sortie correspondante:
.B #M
.# .. Z pq
.#.#.aaa..
@..m.#
#.##P#
.#
.#
M.
#
Exemple d'entrée:
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
Sortie correspondante:
.......... .....
......... .....
O..l...gg..rT
...QQL......Ag..#b..
...qqqqq.........XqQ
#.f@aa......
Y........aaa.....
...uU..E..l.TaKK....
d..FF.d.op
.... .d. ...