La tortuga quiere moverse a lo largo de la cuadrícula para llegar a su comida. Quiere saber cuántos movimientos le tomará llegar allí.
Además, dado que es lento, tiene teletransportadores configurados alrededor de su dominio que utilizará si acorta su camino. O evítalos si alarga su camino.
Conoce a la tortuga
🐢
La tortuga vive en una cuadrícula
La tortuga puede moverse a cualquier cuadrado adyacente ...
Sin embargo, la tortuga no puede moverse a un cuadrado con una montaña
La tortuga quiere comer su fresa, y le gustaría saber cuánto tiempo le llevará llegar a su fresa
Este ejemplo llevaría a la tortuga vueltas
Por suerte, ¡La tortuga encontró un teletransportador! Hay dos teletransportes en la cuadrícula que se asignan entre sí. Al pisar el teletransportador, la tortuga se mueve inmediatamente al teletransportador correspondiente. Los teletransportadores son muy inestables y después de usarlos una vez, desaparecen y ya no se pueden usar.
El reto
Dada una salida de configuración de cuadrícula inicial, el número de movimientos que le tomará a la tortuga alcanzar su fresa.
Reglas
Puede suponer que la cuadrícula de entrada tiene una solución
Cada cuadrícula solo tendrá uno
strawberry
y dosportals
y unoturtle
La cuadrícula de entrada se puede ingresar en cualquier formato conveniente
Debes tratar los
teleporters
artículos de un solo uso.El turno en que la tortuga se mueve hacia un
teleporter
cuadrado ya está en el correspondienteteleporter
. Nunca se mueve hacia ateleporter
y se queda allí para moverse.El camino más corto no necesita hacer uso del portal
La tortuga no puede pasar a los azulejos de la montaña.
Se puede usar cualquier carácter ASCII o entero para representar
mountains
,turtle
,empty grid square
,strawberry
Puede usar el mismo carácter o dos caracteres ASCII o enteros diferentes para representar los
teleporter
paresUna cuadrícula puede tener más de una ruta con la misma longitud de ruta más corta
Esto es código golf
Aclaraciones a las reglas
- Debe tratar
teleporters
son artículos de un solo uso.
Razonamiento : Se señaló que el caso de:
Solo podría resolverse entrando y saliendo de los portales dos veces. En el momento de hacer esta aclaración, ambas soluciones actuaron asumiendo que eran de un solo uso, o que no había razón para probar cuadrados usados previamente. Para evitar romper sus soluciones tan trabajadas, esta parecía la mejor forma de explicar esta configuración. Por lo tanto, esto se consideraría una cuadrícula no válida.
Casos de prueba formateados como listas
[ ['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
Casos de prueba formateados para humanos
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
Créditos
Diseño y estructura a través de: Ratón hambriento de Arnauld
Desafíos propuestos Editar consejo: Kamil-drakari , beefster