Prémisse
Donc, récemment, j'avais environ une demi-heure d'avance pour un rendez-vous et j'ai décidé d'attendre dehors. J'ai également déterminé qu'il serait étrange que je me tienne immobile devant la maison. Par conséquent, j'ai décidé de faire une promenade rapide, dans une zone limitée. J'ai également conclu que si je commençais à tourner en rond, cela rendrait évident que je flânais. J'ai donc été inspiré pour créer mon premier défi Code Golf.
spécification
Vous recevrez une liste, une carte de la zone, qui contiendra soit " "
ou "#"
, qui représentent des espaces libres et des obstacles en quelque sorte. Les espaces libres ne peuvent être traversés qu'une seule fois et il faut 1 minute pour le traverser. Votre position initiale sera signifiée par une "@"
tradition par roguelike, et la cible sera représentée par un "$"
car c'est ce que vous allez perdre là-bas. Vous recevrez également un entier qui représentera le nombre de minutes que vous devez perdre avant de ne pas avoir l'air de vous emparer. Lorsque vous atterrissez sur le"$"
, il devra s'agir du nombre exact de minutes (donc si vous comptez à rebours, il devra être 1 sur une tuile adjacente et 0 sur la tuile). Il sera toujours possible d'atteindre la destination. Votre programme ou fonction devra renvoyer une liste indiquant le chemin le plus court avec <,>, ^ et v pour représenter les quatre directions possibles.
Exemples
Contribution:
[[" ", " ", " ", " "],
["@", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
et
5
Sortie:
[[">", ">", ">", "v"],
["^", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
Contribution:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
et
7
Sortie:
[[" ", "#", " ", " ", " "],
[" ", "#", ">", "v", " "],
["v", "#", "^", "$", " "],
[">", ">", "^", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
Contribution:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
et
17
Sortie:
[[" ", "#", " ", "v", "<"],
[" ", "#", " ", "v", "^"],
["v", "#", " ", "$", "^"],
[">", ">", "v", ">", "^"],
[" ", "#", "v", "^", "<"],
[" ", "#", ">", ">", "^"]]
Règles
- Des échappatoires standard s'appliquent
- Chaque tuile ne doit être déplacée qu'une seule fois
- Le temps exact doit être passé sur le tableau
- Un seul chemin doit être affiché dans le cas de plusieurs chemins
- Ceci est une question de code de golf, donc la réponse la plus courte gagne
- Selon la question de user202729 dans les commentaires, vous pouvez supposer une entrée valide.
Ajoutez un commentaire si des précisions supplémentaires sont nécessaires