El desafío es seguir (dibujar) el camino:
^n
- arriba por n líneasvn
- abajo por n líneas>n
- justo por n posiciones de caracteres<n
- dejado por n posiciones de caracteres
n
es un número entero mayor que cero (es decir, no puede recibir un comando como>-2
).- No hay separadores entre los comandos, la entrada bien formada se ve así:
>5v8<10^3
no se permite ninguna otra forma de entrada. - El número de comandos es ilimitado.
- Se supone que no se arrastran más caracteres en la entrada.
Ejemplos.
La entrada es una cadena vacía, salida:
*
La entrada es
>3
o<3
: tenga en cuenta que esto no hace ninguna diferencia en la salida:****
Similar para
^3
yv3
:* * * *
Entrada:
>1v2
salida:** * *
Entrada:
^4>3v2<1
salida:**** * * * ** * *
Si regresa y usa el mismo camino, no dibuje nada nuevo. P.ej
>5<5
******
... aunque no dibujas nada nuevo, obviamente cambias de posición. Por lo tanto, si su entrada se ve así:
>4<2v3
la salida es:***** * * *
Este es un ejemplo más complejo: 1) el camino puede cruzarse solo 2) tenga en cuenta que los últimos tres pasos del último comando desplazan todo el camino hacia la derecha. Entrada:
v6>4^3<7
salida:* * * ******** * * * * *****
Entrada :
^2v2>3<3v3>4^5v5>3^5>4v2<4v3>4^3v3>3^5>4v2<4v3>7^5>4v2<4v3>9^3<2^2v2>4^2v2<2v3>8^5>2v4>2^4v5<3>6^5>5<5v2>5<5v2>5<4v1>8^3<1^2v2>1v2>2^3v3>2^2>1^2v2<1v3<3>11^3<2^2v2>4^2v2<2v3>5^5>5<5v2>5<5v2>5<4v1>7^5>4v2<4v3>4^3v3>3^5>4v2<3v1<1v2>3^1>1v1
Salida:
* * ***** ***** ***** * * *** * ****** * * * * ****** ***** ***** * * * * * * * * * * * * * * * * * * * * * * * * ***** ***** ***** ***** ***** * * * ****** ** * ** ***** ****** ***** ***** * * * * * * * * * * * * * * * * * * ** * * * * * * * * *** ****** ***** * ****** * * * ** *******************************************************************************************
^2v2>3<3v3>4^5v5>3^5>4v2<4v3>4^3v3>3^5>4v2<4v3>7^5>4v2<4v3>9^3<2^2v2>4^2v2<2v3>8^5>2v4>2^4v5<3>6^5>5<5v2>5<5v2>5<4v1>8^3<1^2v2>1v2>2^3v3>2^2>1^2v2<1v3<3>11^3<2^2v2>4^2v2<2v3>5^5>5<5v2>5<5v2>5<4v1>7^5>4v2<4v3>4^3v3>3^5>4v2<3v1<1v2>3^1>1v1
.Respuestas:
MATL , 71 bytes
Utiliza la versión actual (6.0.0) del lenguaje / compilador. Trabaja en Matlab y en Octave.
EDITAR (21 de junio de 2016): debido a cambios en el idioma, el código requiere algunas modificaciones para ejecutarse en la versión actual (16.0.0). Puede probarlo en línea, incluidas las modificaciones necesarias.
Ejemplos
Explicación
El programa tiene cuatro pasos principales:
[0 -1]
indica un paso a la izquierda. La primera fila es el origen de la ruta,[1 1]
*
. Normalizar a valor mínimo1
1
las coordenadas indicadas por la matriz del paso 3, y de lo0
contrario. Esto luego se transforma en una matriz de caracteres.Código:
fuente
JavaScript (ES6), 204
211 210Edición 1 Corrección de errores: salida '*' para entrada nula
Edición 2 Decodificación más simple de dirección a diferencias de x e y
Aquí está mi respuesta a El mapa del tesoro , revisado para cumplir con las especificaciones.
Menos golf y explicado más o menos
Prueba
fuente
*
.Perl, 174 bytes
Espera entrada como argumento de línea de comandos. ¡Asegúrese de citar el argumento!
Ejemplo:
perl 177.pl "<1^2>3v4<5^6>7v8<9^10>11"
Algo legible:
fuente
05AB1E , 27 bytes
Pruébalo en línea! (2020 está lo suficientemente cerca, ¿por qué no?)
fuente