¿Puedes entrar en la cueva?

Estás jugando un videojuego. Tu pantalla puede representarse como un arreglo 2D, donde los 0 representan áreas transitables y los 1 representan áreas intransitables. Actualmente estás buscando la entrada a una cueva que se encuentra en el lado derecho de la pantalla. Tu personaje comienza en cualquier lugar de la columna más a la izquierda.

Crea una función que determine si puedes entrar en la cueva. Solo puedes moverte a la izquierda, derecha, arriba o abajo (no está permitido moverse en diagonal).

Por ejemplo:

[
  [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]
]

¡Encontraste la entrada! La función debería devolver 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]
]

No, sigue buscando. La función debería devolver false.

Ejemplos

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]
]) ➞ false

Notas

  • Estás viendo la pantalla del juego desde una vista aérea.
  • Otra forma de verlo: puedes entrar en la cueva si puedes moverte desde el lado izquierdo de la pantalla hasta el lado derecho, caminando hacia arriba, abajo, izquierda o derecha.
  • La entrada no necesariamente está en el primer cuadro; es posible que tengas que buscarla en la columna de la izquierda.