Eingang
- Eine binäre Matrix die die Wände eines Dungeons darstellt.
- Die Position des Spielers im Dungeon.
- Die Richtung , in die der Spieler gerade schaut (0 = Nord, 1 = Ost, 2 = Süd, 3 = West)
Ausgabe
Eine Pseudo-3D-Darstellung der Wände, die sich im Sichtfeld des Players befinden, als ASCII-Grafik mit Zeichen.
Nachfolgend finden Sie einige mögliche Ausgaberahmen sowie die entsprechende Karte und den Kompass, um den Überblick zu behalten (das Zeichnen der Karte und des Kompasses ist jedoch nicht Teil der Herausforderung).
Spezifikation
Sichtfeld
Der Spieler hat Wände in seinem Sichtfeld, die von bis beschriftet sind . Unten sind die Positionen der Wände in Bezug auf den Spieler (in Gelb) in alle möglichen Richtungen angegeben.
Die Wände zeichnen
Die gesamte Ausgabe wird mit 7 verschiedenen Zeichen gezogen: " "
, "'"
, "."
, "|"
, "-"
, "_"
und ":"
.
Da eine detaillierte Darstellung der Wandformen im Körper dieser Herausforderung zu langwierig wäre, werden sie stattdessen in folgendem TIO-Link bereitgestellt:
Die Zeichen, die nicht Teil einer bestimmten Wand sind, sind "?"
in diesen Diagrammen mit einem gekennzeichnet . Sie müssen als "transparente" Zeichen behandelt werden, die überhaupt nicht gezeichnet werden. Auf der anderen Seite sind alle Leerzeichen innerhalb einer Wand „fest“ und müssen alle anderen Zeichen überschreiben, die zuvor dort gezeichnet wurden.
Regeln
Über die Eingabe
- Sie können entweder 0-indexierte oder 1-indexierte Koordinaten verwenden.
- Sie können 4 verschiedene Werte Ihrer Wahl für die Richtungen verwenden.
- Sie können davon ausgehen, dass sich immer umlaufende Wände an den Rändern befinden.
- Der Spieler befindet sich garantiert auf einem leeren Feld.
- Die Eingabe ist garantiert gültig.
Über die Ausgabe
- Die Wände müssen genau wie beschrieben gezeichnet werden.
- Das Ausgabeformat ist jedoch auch flexibel: einzelner String, Array von Strings, Matrix von Zeichen usw.
- Führende und nachfolgende Leerzeichen sind zulässig, solange sie konsistent sind.
Das ist Code-Golf .
Testfälle
Alle Testfälle verwenden die folgende Matrix:
[ [ 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 ] ]
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
Erwartete Ergebnisse:
------------------------------ ------------------------------
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:
------------------------------ ------------------------------
'. __ '.
|'. .'| |
| '. .' | |----.--------------.-------
| | '. .' | | | | |
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '. | | | | |
| .' '. | |----'--------------'-------
|.' '.|__ |
.' .'
Verwandte Herausforderung:
Diese Herausforderung von 2013 ist eng miteinander verbunden. Es hat jedoch ein anderes Gewinnkriterium (Code-Challenge), eine viel lockerere Spezifikation der Ausgabe und erfordert interaktive E / A.