Die Schildkröte möchte sich entlang des Gitters bewegen, um zu seinem Futter zu gelangen. Er möchte wissen, wie viele Züge er braucht, um dorthin zu gelangen.
Da er langsam ist, hat er Teleporter um seine Domain eingerichtet, die er nutzen wird, wenn sich sein Weg verkürzt. Oder meide sie, wenn es seinen Weg verlängert.
Treffen Sie die Schildkröte
🐢
Die Schildkröte lebt auf einem Gitter
Die Schildkröte kann sich zu jedem benachbarten Quadrat bewegen ...
Die Schildkröte kann sich jedoch nicht auf ein Feld mit einem Berg bewegen.
Die Schildkröte möchte seine Erdbeere essen und möchte wissen, wie lange es dauern wird, bis sie zu ihrer Erdbeere
Dieses Beispiel würde die Schildkröte Umdrehungen
Zum Glück Die Schildkröte hat einen Teleporter gefunden! Es gibt zwei Teleports auf dem Gitter, die sich gegenseitig zuordnen. Wenn Sie auf den Teleporter treten, bewegt sich die Schildkröte sofort zum entsprechenden Teleporter. Teleporter sind sehr instabil und nach einmaliger Verwendung verschwinden sie und sind nicht mehr verwendbar.
Die Herausforderung
Wenn eine anfängliche Gitterkonfiguration die Anzahl der Bewegungen ausgibt, benötigt die Schildkröte, um ihre Erdbeere zu erreichen.
Regeln
Sie können davon ausgehen, dass das Eingaberaster eine Lösung hat
Jedes Gitter hat nur eins
strawberry
und zweiportals
und einsturtle
Das Eingaberaster kann in jedem geeigneten Format eingegeben werden
Sie sollten behandeln,
teleporters
sind EinwegartikelIn dem Zug, in dem sich die Schildkröte auf ein
teleporter
Feld bewegt, befindet er sich bereits auf dem entsprechendenteleporter
. Er zieht nie auf einteleporter
und bleibt dort für einen ZugDer kürzeste Weg muss das Portal nicht nutzen
Die Schildkröte kann nicht in Bergkacheln übergehen
Sie können eine beliebige ASCII - Zeichen oder ganze Zahl verwenden , um darzustellen
mountains
,turtle
,empty grid square
,strawberry
Sie können entweder dasselbe Zeichen oder zwei verschiedene ASCII-Zeichen oder ganze Zahlen verwenden, um die
teleporter
Paare darzustellenEin Gitter kann mehr als einen Pfad mit derselben kürzesten Pfadlänge haben
Das ist Code-Golf
Klarstellungen zu Regeln
- Sie sollten behandeln,
teleporters
sind Einwegartikel.
Begründung : Es wurde darauf hingewiesen, dass der Fall von:
Könnte nur durch zweimaliges Betreten und Verlassen der Portale gelöst werden. Zum Zeitpunkt dieser Klarstellung gingen beide Lösungen davon aus, dass sie entweder zur einmaligen Verwendung bestimmt waren, oder es gab keinen Grund, zuvor verwendete Quadrate zu testen. Um zu vermeiden, dass ihre hart erarbeiteten Lösungen kaputt gehen, schien dies der beste Weg zu sein, diesen Aufbau zu erklären. Daher würde dies als ungültiges Raster angesehen.
Testfälle, die als Listen formatiert sind
[ ['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
Für Menschen formatierte Testfälle
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
Credits
Design und Struktur über: Hungry mouse von Arnauld
Vorgeschlagene Herausforderungen Edit Advice: Kamil-drakari , Beefster