Você consegue entrar na caverna?
Você está jogando um videogame. Sua tela pode ser representada como um array 2D, onde os 0 representam áreas transitáveis e os 1 representam áreas intransitáveis. No momento, você está procurando a entrada de uma caverna localizada no lado direito da tela. Seu personagem começa em qualquer lugar da coluna mais à esquerda.
Crie uma função que determine se você consegue entrar na caverna. Você só pode se mover para a esquerda, direita, cima ou baixo (não é permitido se mover na diagonal).
Por exemplo:
[
[0, 0, 1, 1, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 1, 0]
]Você encontrou a entrada! A função deve retornar true.
[
[0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 1, 1, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 1, 1, 0]
]Não, continue procurando. A função deve retornar false.
Exemplos
can_enter_cave([
[0, 1, 1, 1, 0, 1, 1, 0],
[0, 0, 1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 1, 1, 0],
[0, 1, 1, 1, 1, 1, 1, 0]
]) ➞ false
# You cannot walk diagonally!
can_enter_cave([
[0, 1, 1, 1, 0, 1, 1, 0],
[0, 0, 1, 1, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 1, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 0]
]) ➞ true
can_enter_cave([
[0, 1, 1, 1, 1, 1, 1, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 1, 0],
[0, 1, 1, 0, 0, 1, 1, 0]
]) ➞ falseObservações
- Você está vendo a tela do jogo de uma perspectiva aérea.
- Outra forma de pensar nisso: você consegue entrar na caverna se puder se mover do lado esquerdo da tela até o lado direito, caminhando para cima, para baixo, para a esquerda ou para a direita.
- A entrada não fica necessariamente no primeiro quadrado; talvez você precise procurá-la na coluna mais à esquerda.