Robot-to-Wall

Queremos simular un pequeño juego donde un pequeño robot se mueve en línea recta (horizontal o verticalmente) para ver dónde va a parar según los movimientos que le pida el usuario.

El tablero por donde se mueve el robot es rectangular, de nn filas por mm columnas, y en cada casilla del tablero puede haber una pared (’#’) o bien la casilla está libre (’.’). El robot no puede entrar en las casillas donde hay una pared pero puede pasar por aquellas que estan libres.

El robot empieza en una casilla dada y, al realizar un movimiento, avanza en línea recta hasta que una pared le impida seguir avanzando, o bien se salga del tablero. Los movimientos posibles son las 4 direcciones básicas "izquierda", "derecha", "arriba" y "abajo". En los movimientos a derecha o izquierda, se mantiene la fila y cambia la columna, y en los movimientos de abajo o arriba, se mantiene la columna y cambia la fila.

Entrada

La entrada empieza con dos enteros, nn y mm, que indican el tamaño del tablero. Luego vienen n×mn\times m caracteres (’.’ o ’#’) que representan el tablero. Seguidamente viene la posición inicial del robot, (f,c)(f, c), con 1fn1 \leq f \leq n siendo la fila, y 1cm1 \leq c \leq m la columna.Finalmente viene una secuencia de palabras sin centinela que representan las direcciones de los movimientos que debe realizar el robot.

Salida

La salida muestra el tablero tal como queda al final de la simulación, en el mismo formato que estaba a la entrada, pero con el robot marcado con una O mayúscula, ’O’. Después de mostrar el tablero hay que poner una línea vacía. Y al final, si el robot se ha salido del tablero, hay que añadir el texto "El robot se ha salido.".

Observaciones

Se garantiza que la posición inicial es una casilla libre (’.’).

Información del problema

Autoría: PRO1

Generación: 2026-01-25T17:24:27.071Z

© Jutge.org, 2006–2026.
https://jutge.org