Schreiben Sie auf einer Tafel das kürzeste Programm oder die kürzeste Funktion, um anzuzeigen oder zurückzugeben, welche Zeichen für den Spieler sichtbar sind. Ein Charakter ist in Sicht, wenn es möglich ist, eine Linie zwischen ihm und dem Spieler zu ziehen, ohne dass Charaktere gekreuzt werden, die die Sicht beeinträchtigen.
Eingang:
@repräsentiert die Position des Spielers. In der Eingabe wird nur eine davon vorhanden sein.- Jedes Zeichen, das dem regulären Ausdruck entspricht,
[#A-Z]blockiert die Sicht. - Jedes Zeichen, das passt,
[ a-z]ermöglicht das Sehen. - Es gibt keine ungültigen Zeichen
- Ihnen wird eine rechteckige Eingabe garantiert
Linien sind wie folgt definiert:
- Definieren Sie den Vektor als Größe und Richtung
- Eine Richtung ist eine von N, NE, E, SE, S, SW, W, NW
- Eine Größe gibt an, wie viele Zeichen entlang dieser Richtung gezählt werden sollen
- sei der Anfangsvektor d 1 ; der zweite Vektor heißt d 2
- eines von d 1 oder d 2 muss eine Größe von haben
1; der andere kann eine beliebige Größe haben - Die Richtung von d 1 muss der Richtung von d 2 benachbart sein (z. B .: N und NE)
Eine Linie ist definiert als alle Zeichen entlang des Pfades, die durch Anwenden von d 1 , dann d 2 , d 1 , d 2 markiert sind ... .
Abtastzeile (gegeben durch das .s):
d 1 = (Betrag: 4, Richtung: E)
d 2 = (Betrag: 1, Richtung NE)
.....
.....
.....
@....
Ausgabe:
- Jedes sichtbare Zeichen an der richtigen Position
.ersetzt das Leerzeichen. - Platz für jedes nicht sichtbare Zeichen.
Beispieleingabe:
@
K
J
L
o
Entsprechende Ausgabe:
@.........
....K.....
.J.....
..........
.. .L.....
.. . ....
... .. ...
... .. ..
... . .
.... ..
Beispiel Input:
B###M# by
#Q # Zmpq
# # aaa
@ m #
# ##P#
# ####
# ####
#M ###
######
Entsprechende Ausgabe:
.B #M
.# .. Z pq
.#.#.aaa..
@..m.#
#.##P#
.#
.#
M.
#
Beispieleingabe:
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
Entsprechende Ausgabe:
.......... .....
......... .....
O..l...gg..rT
...QQL......Ag..#b..
...qqqqq.........XqQ
#.f@aa......
Y........aaa.....
...uU..E..l.TaKK....
d..FF.d.op
.... .d. ...