Entrada
- Una matriz binaria representa las paredes de una mazmorra.
- La posición del jugador dentro de la mazmorra.
- La dirección que el jugador está enfrentando actualmente (0 = Norte, 1 = Este, 2 = Sur, 3 = Oeste)
Salida
Una representación pseudo-3D de las paredes que están en el campo de visión del jugador, como un arte ASCII de caracteres.
A continuación hay varios marcos de salida posibles, junto con el mapa y la brújula correspondientes para ayudar a dominarlo (pero dibujar el mapa y la brújula no es parte del desafío).
Especificación
Campo de visión
El jugador tiene paredes en su campo de visión, marcada de a . A continuación se muestran las posiciones de las paredes en relación con el jugador (en amarillo), en todas las direcciones posibles.
Dibujando las paredes
Se supone que los muros se dibujan de a en este orden exacto, dado que cualquier parte dibujada previamente puede sobrescribirse con muros más cercanos. Por supuesto, puede implementarlo de manera diferente siempre que el resultado final sea el mismo.
Toda la producción se dibuja con 7 caracteres distintos: " "
, "'"
, "."
, "|"
, "-"
, "_"
y ":"
.
Debido a que detallar las formas de las paredes en el cuerpo de este desafío lo haría demasiado largo, en su lugar se proporcionan en el siguiente enlace TIO:
Los caracteres que no forman parte de un muro determinado están marcados con un "?"
en estos diagramas. Deben tratarse como caracteres 'transparentes' que no se dibujan en absoluto. Por otro lado, todos los espacios dentro de una pared son 'sólidos' y deben sobrescribir cualquier otro personaje que haya sido dibujado previamente allí.
Reglas
Sobre la entrada
- Usted puede tomar , , y en cualquier formato razonable.
- Puede usar coordenadas indexadas 0 o indexadas 1.
- Puede usar 4 valores distintos de su elección para las direcciones.
- Se garantiza que la matriz sea al menos .
- Puede suponer que siempre habrá paredes circundantes en los bordes.
- Se garantiza que el jugador se ubicará en una casilla vacía.
- La entrada está garantizada para ser válida.
Acerca de la salida
- Las paredes deben dibujarse exactamente como se describe.
- Sin embargo, el formato de salida también es flexible: cadena única, matriz de cadenas, matriz de caracteres, etc.
- Los espacios en blanco iniciales y finales son aceptables siempre que sean consistentes.
Este es el código de golf .
Casos de prueba
Todos los casos de prueba utilizan la siguiente matriz:
[ [ 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 ] ]
Las siguientes entradas están utilizando coordenadas indexadas 0, con apuntando a la esquina superior izquierda.
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
Resultados esperados:
------------------------------ ------------------------------
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:
------------------------------ ------------------------------
'. __ '.
|'. .'| |
| '. .' | |----.--------------.-------
| | '. .' | | | | |
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '. | | | | |
| .' '. | |----'--------------'-------
|.' '.|__ |
.' .'
Desafío relacionado:
Este desafío de 2013 está estrechamente relacionado. Pero tiene un criterio ganador diferente (desafío de código), una especificación mucho más flexible de la salida y requiere E / S interactiva.