A tartaruga quer se mover ao longo da grade para chegar à sua comida. Ele quer saber quantos movimentos serão necessários para ele chegar lá.
Além disso, como é lento, ele tem teleportadores montados em torno de seu domínio, que ele utilizará se diminuir o seu caminho. Ou evite-os se prolongar seu caminho.
Conheça a tartaruga
🐢
As vidas de tartarugas em uma grade
No entanto, a tartaruga não pode se mover para um quadrado com uma montanha
A Tartaruga quer comer seu Morango, e gostaria de saber quanto tempo levará para chegar ao seu Morango
O desafio
Dada uma configuração inicial da grade, o número de movimentos necessários para a tartaruga alcançar seu morango.
Regras
Você pode assumir que a grade de entrada tem uma solução
Cada grade terá apenas um,
strawberry
doisportals
e umturtle
A grade de entrada pode ser inserida em qualquer formato conveniente
Você deve tratar
teleporters
são itens de uso únicoNa vez em que a tartaruga se move para um
teleporter
quadrado, ele já está no correspondenteteleporter
. Ele nunca se muda para umteleporter
e fica lá para se mexerO caminho mais curto não precisa fazer uso do portal
A tartaruga não pode passar para azulejos de montanha
Você pode usar qualquer caractere ASCII ou inteiro para representar
mountains
,turtle
,empty grid square
,strawberry
Você pode usar o mesmo caractere ou dois caracteres ASCII ou números inteiros diferentes para representar os
teleporter
paresUma grade pode ter mais de um caminho com o mesmo tamanho de caminho mais curto
Isso é código-golfe
Esclarecimentos às Regras
- Você deve tratar
teleporters
são itens de uso único.
Só poderia ser resolvido entrando e saindo dos portais duas vezes. No momento de fazer esse esclarecimento, ambas as soluções agiram assumindo que eram de uso único ou que não havia razão para tentar quadrados usados anteriormente. Para evitar quebrar suas soluções trabalhadas, essa parecia a melhor maneira de explicar essa configuração. Portanto, isso seria considerado uma grade inválida.
Casos de teste formatados 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 teste formatados 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
Projeto e estrutura via: Mouse faminto por Arnauld
Desafios propostos Editar conselhos: Kamil-drakari , beefster
fonte
Respostas:
JavaScript (ES7),
140 139138 bytesRecebe entrada como uma matriz de números inteiros com o seguinte mapeamento:
Experimente online!
Quão?
Comentado
fonte
Python 2 ,
441431341 bytesExperimente online!
Insira como listas, mas usando números em vez de caracteres (graças a Quintec) e um valor separado para o destino do teleportador. Esses recuos grandes devem ser caracteres de tabulação se o Stack Exchange os remover. Quaisquer dicas ou idéias especialmente bem-vindas, pois sinto que isso pode ficar
umpouco mais curto.A tabela para caracteres usados no desafio para os números usados para o meu programa está abaixo, mas você também pode usar este programa .
-10 bytes graças à Quintec, alterando a entrada de caracteres para números.
- Muitos bytes graças a Jonathan Frech, ElPedro e Jonathan Allan.
fonte
Python 2 , 391
397403422bytesExperimente online!
O problema é traduzido em um gráfico e a solução é encontrar o caminho mais curto entre a tartaruga e o morango.
fonte