El reto
Su tarea es animar a Adve the Adventurer moviéndose a través de un laberinto espeluznante (es decir, Halloween). Adve es un •
; Sin embargo, es un personaje fluido, por lo que no le importa que lo represente un personaje diferente.
Para animar a Adve, imprime cada cuadro; un marco es el mapa con su ubicación actual en él. Adve se mueve un espacio hacia adelante cada turno y nunca retrocede. Comienza en la primera fila y termina en la última.
Entrada
Cualquier formato razonable como una cadena con un delimitador o una matriz de cadenas. Puede suponer que la entrada será un mapa mayor que 3 * 3, que contiene solo una ruta posible. Los únicos personajes presentes serán #
y .
Salida
Los marcos
Ejemplo de laberinto ( ok ... laberinto )
Aquí hay un mapa sin Adve en él; el primer y el último cuadro son este mapa vacío (este mapa es 9x15):
### #####
## #####
## ######
## #
####### #
# ### #
# # # #
# # ###
# #######
# ####
#### ####
#### ###
##### ###
##### ###
##### ###
Este es el código de golf , por lo que gana el código más corto en bytes.
La salida exacta para esto se puede encontrar aquí (37 cuadros).
Respuestas:
Perl, 84 bytes
¡Gracias @Ton Hospel por guiarme en la dirección correcta para jugar golf alrededor de 30 bytes!
Bytecount incluye 82 bytes de código y
-0p
banderas.Tenga en cuenta que hay dos espacios finales y no hay una nueva línea final (de lo contrario no funcionará).
Toma el laberinto como entrada como salida de todos los cuadros necesarios para que Adve salga de él. Tenga en cuenta que Adve es
&
más bien un a•
, ya que este último no es utf8 (y perl no usa utf8 por defecto). Ejecútalo con-0pE
banderas:Solo para los ojos , también hice esta versión animada, que es un poco más larga, pero borrará el terminal entre cada impresión y duerme 0,15 segundos, por lo que parecerá que Adve se está moviendo:
fuente
$s="@+"
, no me había dado cuenta antes de que@+
solo se cambia si ocurre una expresión regular exitosa . Y enredo
lugar dewhile
guardar uno o dos bytes). ¿Alguna pista sobre cómo jugar más al golf? Supongo que tengo que deshacerme de ellos dey///
alguna manera, o hacer els///
más corto ... pero de cualquier manera no sé cómo.y///
está muy bien ya que se necesita algo para indicar la dirección (pero nota que la oportunidad de elegir de qué lado) Pero la principal mejora vendrá de sustituciones que combinans/ &/&A/
ys/& /A&/
juntos (y los siguientes) para ver que esos no eran la expresión regular que necesitaba combinar! ¡Muchas gracias! (¡Y gracias por dejarme descubrir cómo jugar al golf!)JavaScript (ES6), 137
(1 byte guardado thx @ETHproductions)
Menos golf
Prueba
fuente