Su programa tiene que tomar una cadena de líneas múltiples, como esta:
#############
# #
# p #
# #
#############
p
es el jugador y #
es un bloque.
Ahora debajo de eso en la terminal debería haber una línea de entrada que diga:
How do you want to move?
Si el jugador escribe l
que tiene que caminar hacia la izquierda cuando no hay un bloque, de lo contrario, cuando hay un bloque, no puede pasar y no se mueve, por supuesto, ahora la salida en la terminal debe actualizarse ( y la salida anterior borrada / sobrescrita):
#############
# #
# p #
# #
#############
Puede escribir l
para izquierda, r
para derecha, u
para arriba y d
para abajo.
La entrada siempre será multilínea, pero no siempre se rellenará con espacios en un rectángulo perfecto. Además, los hash pueden estar en cualquier parte de la cadena y no siempre estarán conectados entre sí. Por ejemplo:
## ##
# #
## p
#
Es una mazmorra válida. (tenga en cuenta la falta de espacios finales en cada línea)
Si el jugador sale de la cadena, no tiene que mostrarse. Pero si regresa más tarde, debe mostrarse nuevamente.
Y los límites de "fuera" de la cadena son length(longest_line)
por number_of_lines
rectángulo, por lo que incluso si una línea no se rellena con espacios a la derecha, esa ubicación no se considera fuera de los límites. Ejemplo usando la mazmorra anterior:
## ##
# #p
##
#
La segunda línea no tenía un espacio donde ahora está la p, pero eso no importa.
Finalmente, su programa debe recorrer siempre para siempre la entrada.
Casos de prueba
Caso de prueba 1:
####
# p#
#
####
How do you want to move?
d
####
# #
# p
####
Caso de prueba 2:
####
p#
#
####
How do you want to move?
l
####
p #
#
####
How do you want to move?
d
####
#
p #
####
How do you want to move?
l
####
#
p #
####
How do you want to move?
l
####
#
#
####
How do you want to move?
r
####
#
p #
####
Por supuesto, estos no están completos. Su código debe repetirse para siempre y borrar la pantalla entre cada salida .
Su salida puede solicitar la entrada como How do you want to move?\n<input>
o How do you want to move?<input>
(es decir, no necesita la entrada en una línea en blanco), y no necesita una línea vacía entre la línea final de la mazmorra y la solicitud. (Sin embargo, no pueden estar en la misma línea)
¡Las lagunas estándar no están permitidas! Este es el código de golf, por lo que gana el código más corto en bytes.
l
, r
, u
, o d
) puede ser cualquier cosa, no sólo "¿Cómo se quiere mover"? Realmente no afecta las respuestas excepto por el golf.