Wejście
- Binarna macierz reprezentująca ściany lochu.
- Pozycja gracza w lochu.
- Kierunek , w którym gracz aktualnie patrzy (0 = północ, 1 = wschód, 2 = południe, 3 = zachód)
Wydajność
Pseudo-trójwymiarowa reprezentacja ścian znajdujących się w polu widzenia gracza, jako grafika ASCII zawierająca znaków.
Poniżej znajduje się kilka możliwych ram wyjściowych wraz z odpowiednią mapą i kompasem, które pomagają w zrozumieniu go (ale narysowanie mapy i kompasu nie jest częścią wyzwania).
Specyfikacja
Pole widzenia
Zawodnik ma ścian w jego polu widzenia oznakowanym od do . Poniżej znajdują się pozycje ścian względem gracza (na żółto) we wszystkich możliwych kierunkach.
Rysowanie ścian
Ściany powinny być rysowane od do w dokładnie takiej kolejności, biorąc pod uwagę, że każda narysowana wcześniej część może zostać zastąpiona ściankami bliższymi. Możesz oczywiście zaimplementować go inaczej, o ile końcowy wynik jest taki sam.
Cały wyjściowy jest narysowany z 7 różnych postaci: " "
, "'"
, "."
, "|"
, "-"
, "_"
i ":"
.
Ponieważ uszczegółowienie kształtów ścian w korpusie tego wyzwania spowodowałoby, że byłoby ono zbyt długie, zamiast tego podano je w poniższym linku TIO:
Znaki, które nie są częścią danej ściany, są oznaczone "?"
na tych schematach literą „a”. Należy je traktować jako „przezroczyste” znaki, które w ogóle nie są rysowane. Z drugiej strony wszystkie przestrzenie w ścianie są „stałe” i muszą zastąpić wszelkie inne znaki, które mogły zostać wcześniej narysowane.
Zasady
O wejściu
- Można wziąć , , i w jakimkolwiek rozsądnym formacie.
- Możesz użyć współrzędnych 0 lub 1 indeksowanych.
- Możesz użyć 4 różnych wybranych wartości dla wskazówek.
- Gwarantowana macierz ma co najmniej .
- Możesz założyć, że na krawędziach zawsze będą otaczające ściany.
- Gracz na pewno znajdzie się na pustym polu.
- Dane wejściowe są gwarantowane.
O wyjściu
- Ściany muszą być narysowane dokładnie tak, jak opisano.
- Format wyjściowy jest jednak również elastyczny: pojedynczy ciąg, tablica ciągów, macierz znaków itp.
- Wiodące i końcowe białe znaki są dopuszczalne, o ile są spójne.
To jest golf golfowy .
Przypadki testowe
Wszystkie przypadki testowe korzystają z następującej macierzy:
[ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
[ 1, 0, 1, 1, 1, 0, 0, 0, 0, 1 ],
[ 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 0, 0, 0, 1, 1, 0, 1 ],
[ 1, 0, 0, 1, 0, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 ],
[ 1, 1, 1, 1, 0, 0, 0, 0, 0, 1 ],
[ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ]
Poniższe dane wprowadzają współrzędne 0-indeksowane, przy czym wskazuje lewy górny róg.
x=3, y=3, d=0
x=6, y=4, d=3
x=4, y=4, d=1
x=1, y=5, d=2
x=7, y=7, d=3
x=6, y=6, d=1
x=8, y=1, d=2
x=7, y=6, d=1
Oczekiwane wyniki:
------------------------------ ------------------------------
x=3, y=3, d=0: x=6, y=4, d=3:
------------------------------ ------------------------------
__ __ '. .'
|'. .'| | |
| '.--------------.' | |----. |
| | | | | | '.--------. |
| | | | | | | | |
| | | | | | | | |
| | | | | | .'--------' |
| .'--------------'. | |----' |
__|.' '.|__ | |
.' '.
------------------------------ ------------------------------
x=4, y=4, d=1: x=1, y=5, d=2:
------------------------------ ------------------------------
.' __ ________________________ .'
| | |
-------. .----| | |
| '.--------.' | | | |
| | | | | | |
| | | | | | |
| .'--------'. | | | |
-------' '----| | |
| __|________________________|
'. '.
------------------------------ ------------------------------
x=7, y=7, d=3: x=6, y=6, d=1:
------------------------------ ------------------------------
'. '.
|'. |'.
| '. | '.
| | '. .- | |--.--------.--------.-
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '- | |--'--------'--------'-
| .' | .'
|.' |.'
.' .'
------------------------------ ------------------------------
x=8, y=1, d=2: x=7, y=6, d=1:
------------------------------ ------------------------------
'. __ '.
|'. .'| |
| '. .' | |----.--------------.-------
| | '. .' | | | | |
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '. | | | | |
| .' '. | |----'--------------'-------
|.' '.|__ |
.' .'
Powiązane wyzwanie:
Wyzwanie z 2013 r. Jest ściśle powiązane. Ale ma inne kryterium wygranej (wyzwanie kodowe), znacznie luźniejszą specyfikację danych wyjściowych i wymaga interaktywnych operacji we / wy.