Escape da masmorra I
Ogmo é um mago que foi preso em uma masmorra. Ele precisa da sua ajuda.
Crie uma função que receba um mapa da masmorra e retorne uma única string multilinha contendo o caminho mais curto marcado, o número mínimo de passos até a saída e a sequência de fuga.
- Ogmo começa dentro da masmorra na posição indicada por
O. - A saída é indicada por
X. Sempre haverá uma saída da masmorra, e ela pode estar em qualquer lugar dentro da masmorra (não apenas nas bordas do mapa). - Ogmo só pode se mover em quatro direções: direita
R, esquerdaL, cimaU, baixoD. - Cada passo que Ogmo precisar dar para escapar da masmorra deve ser indicado no mapa da solução com
+. - As paredes da masmorra são indicadas por
#. Ogmo só pode se mover pelos espaços vazios" ". - Reproduza o layout multilinha mostrado nos exemplos e nos testes.
Exemplos
escape([
["#", "#", "#", "#", "#"],
["#", "O", " ", " ", "#"],
["#", "#", " ", "#", "#"],
["#", " ", " ", " ", "X"],
["#", "#", "#", "#", "#"]
]) ➞
["#", "#", "#", "#", "#"]
["#", "O", "+", " ", "#"]
["#", "#", "+", "#", "#"]
["#", " ", "+", "+", "+"]
["#", "#", "#", "#", "#"]
# Number of steps to escape from the dungeon: 5
# Escape sequence: RDDRR
escape([
["#", "#", "#", "#", "#"],
["#", "O", " ", "X", "#"],
["#", "#", " ", "#", "#"],
["#", " ", " ", " ", "#"],
["#", "#", "#", "#", "#"]
]) ➞
["#", "#", "#", "#", "#"]
["#", "O", "+", "+", "#"]
["#", "#", " ", "#", "#"]
["#", " ", " ", " ", "#"]
["#", "#", "#", "#", "#"]
# Number of steps to escape from the dungeon: 2
# Escape sequence: RRObservações
Confira a segunda parte deste desafio: Escape da masmorra II