Premessa
Di recente, ero in ritardo di circa mezz'ora per un appuntamento e ho deciso di aspettare fuori. Decisi anche che sarebbe stato strano se fossi rimasto immobile davanti alla casa. Pertanto, ho deciso di fare una breve passeggiata, in un'area limitata. Ho anche concluso che se avessi iniziato a camminare in cerchio sarebbe ovvio che stavo bighellonando. Quindi sono stato ispirato a creare la mia prima sfida di Code Golf.
specificazione
Ti verrà dato un elenco, una mappa dell'area, che conterrà uno " "
o "#"
, che rappresentano spazi liberi e ostacoli di qualche tipo. Gli spazi liberi possono essere attraversati una sola volta e ci vuole 1 minuto per attraversarlo. La tua posizione iniziale sarà indicata con una "@"
tradizione per roguelike e l'obiettivo sarà rappresentato con un "$"
perché è quello che perderai lì. Ti verrà anche dato un numero intero che rappresenterà quanti minuti devi perdere prima di non sembrare che ti stia intromettendo. Quando atterri sul"$"
, dovrà essere stato l'esatto numero di minuti (quindi se si effettua il conto alla rovescia, dovrà essere 1 su una tessera adiacente ed essere 0 sulla tessera). Sarà sempre possibile raggiungere la destinazione. Il programma o la funzione dovrà restituire un elenco che mostra il percorso più breve con <,>, ^ e v per rappresentare le quattro direzioni possibili.
Esempi
Ingresso:
[[" ", " ", " ", " "],
["@", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
e
5
ouput:
[[">", ">", ">", "v"],
["^", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
Ingresso:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
e
7
Produzione:
[[" ", "#", " ", " ", " "],
[" ", "#", ">", "v", " "],
["v", "#", "^", "$", " "],
[">", ">", "^", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
Ingresso:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
e
17
Produzione:
[[" ", "#", " ", "v", "<"],
[" ", "#", " ", "v", "^"],
["v", "#", " ", "$", "^"],
[">", ">", "v", ">", "^"],
[" ", "#", "v", "^", "<"],
[" ", "#", ">", ">", "^"]]
Regole
- Si applicano scappatoie standard
- Ogni tessera deve essere spostata una sola volta
- Il tempo esatto deve essere speso sul tabellone
- Solo un percorso deve essere visualizzato nel caso di più percorsi
- Questa è una domanda di golf del codice, quindi vince la risposta più breve
- Come da domanda di user202729 nei commenti, puoi assumere un input valido.
Aggiungi un commento se sono necessari ulteriori chiarimenti