前提
だから最近、私は予定の約30分早く、外で待つことにしました。また、家の前にじっと立っているだけでは奇妙に見えると判断しました。そのため、私は限られたエリア内で、早歩きすることにしました。また、もし私が円を歩き始めたら、それは私がwasしていることを明らかにするだろうと結論づけました。だから、最初のCode Golfチャレンジを作成することに触発されました。
仕様
リスト、エリアの地図が表示されます。これには、" "
またはのいずれかが含まれます。これらは"#"
、ある種の空きスペースと障害物を表します。空きスペースを横断できるのは1回のみで、横断するには1分かかります。あなたの初期位置は"@"
ローグライクごとの伝統で表され、ターゲットは"$"
そこで表されるでしょう。なぜならそれはそこであなたが失うことになるからです。また、まるであなたが侵入しているかのように見えなくなる前にあなたが無駄にしなければならない分数を表す整数が与えられます。着陸するとき"$"
、正確な分数である必要があります(したがって、カウントダウンする場合、隣接するタイルでは1であり、タイルでは0である必要があります)。常に目的地に到着することが可能です。プログラムまたは関数は、可能な4つの方向を表すために、<、>、^、およびvを含む最短パスを示すリストを返す必要があります。
例
入力:
[[" ", " ", " ", " "],
["@", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
そして
5
出力:
[[">", ">", ">", "v"],
["^", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
入力:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
そして
7
出力:
[[" ", "#", " ", " ", " "],
[" ", "#", ">", "v", " "],
["v", "#", "^", "$", " "],
[">", ">", "^", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
入力:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
そして
17
出力:
[[" ", "#", " ", "v", "<"],
[" ", "#", " ", "v", "^"],
["v", "#", " ", "$", "^"],
[">", ">", "v", ">", "^"],
[" ", "#", "v", "^", "<"],
[" ", "#", ">", ">", "^"]]
ルール
- 標準的な抜け穴が適用されます
- 各タイルは1回だけ移動する必要があります
- 正確な時間をボードに費やす必要があります
- 複数のパスの場合、1つのパスのみを表示する必要があります
- これはコードゴルフの質問なので、最短の回答が勝ちます
- コメント内のuser202729の質問に従って、有効な入力を想定することができます。
さらに説明が必要な場合はコメントを追加してください