カメはグリッドに沿って移動して餌を取りたいと考えています。彼はそこに着くまでにどれだけの動きが必要かを知りたがっています。
同様に、彼は遅いので、彼は自分のドメインの周りにテレポーターをセットアップします。または、パスが長くなる場合は避けてください。
亀に会う
🐢
グリッド上のカメの生活
しかし、カメは山の正方形に移動することはできません
カメは彼のイチゴを食べたい、それが彼のイチゴを取得するのにかかるどのくらい知っていただきたいと思い
チャレンジ
最初のグリッド構成出力が与えられると、移動回数により、カメがイチゴに到達するまでに時間がかかります。
ルール
入力グリッドに解決策があると仮定することができます
各グリッドには、1 つ
strawberry
、2つportals
、1つのturtle
入力グリッドは、任意の便利な形式で入力できます
あなたが扱う必要
teleporters
があるのは使い捨てのアイテムですカメが
teleporter
正方形に移動するターンでは、彼はすでに対応していteleporter
ます。彼は決して移動せずteleporter
、移動のためにそこに留まります最短パスでポータルを使用する必要はありません
カメは山のタイルを通過できません
あなたが表現するために任意のASCII文字または整数を使用することができ
mountains
、turtle
、empty grid square
、strawberry
同じ文字または2つの異なるASCII文字または整数を使用して
teleporter
ペアを表すことができますグリッドには、同じ最短パス長を持つ複数のパスを含めることができます
これはコードゴルフです
規則の明確化
teleporters
使い捨てのアイテムを扱う必要があります。
推論:それはの場合との指摘があった
ポータルを2回出入りすることでのみ解決できます。この明確化の時点で、両方の解決策は、それらが単一使用であるか、以前に使用された正方形を試す理由がないと仮定して行動しました。彼らの勤勉な解決策を壊さないようにするために、これはこのセットアップの最善の方法であると思われました。したがって、これは無効なグリッドと見なされます。
リストとしてフォーマットされたテストケース
[ ['T', 'X', 'X', 'S', 'X'], ['X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 3
[ ['T', 'M', 'X', 'S', 'X'], ['X', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'O'] ] --> 4
[ ['T', 'M', 'X', 'S', 'O'], ['O', 'M', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 2
[ ['T', 'M', 'X', 'S', 'X'], ['O', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'X'] ] --> 4
[ ['T', 'M', 'S', 'X', 'O'], ['X', 'M', 'M', 'M', 'M'], ['X', 'X', 'X', 'X', 'O'] ] --> 7
[ ['T', 'X', 'X', 'S', 'X'], ['O', 'M', 'M', 'M', 'X'], ['X', 'X', 'O', 'X', 'X'] ] --> 3
人間用にフォーマットされたテストケース
T X X S X
X X X X X
X X X X X --> 3
T M X S X
X M X X X
O X X X O --> 4
T M X S O
O M X X X
X X X X X --> 2
T M X S X
O M X X X
O X X X X --> 4
T M S X O
X M M M M
X X X X O --> 7
T X X S X
O M M M X
X X O X X --> 3
クレジット
設計と構造:Arnauldの空腹マウス
提案された課題の編集アドバイス:Kamil-drakari、beefster