Desafío
Dado el tamaño de la cuadrícula, las posiciones de los obstáculos, la posición del jugador y la posición del objetivo, su tarea es encontrar un camino para que el jugador llegue al objetivo y evitar los obstáculos al mismo tiempo (si es necesario).
Entrada
- N : tamaño de cuadrícula
N x N - P : posición del jugador
[playerposx, playerposy] - T : posición del objetivo
[targetposx, targetposy] - O : Posiciones de obstáculos
[[x1, y1], [x2, y2],...,[xn, yn]]
Salida
Ruta : Un jugador de ruta puede usar para alcanzar el objetivo.[[x1, y1], [x2, y2],...,[xn, yn]]
Reglas
- El punto
[0,0]está en la esquina superior izquierda de la cuadrícula. - La posición del jugador siempre estará en el lado izquierdo de la cuadrícula.
- La posición del objetivo siempre estará en el lado derecho de la cuadrícula.
- La cuadrícula siempre tendrá al menos un obstáculo.
- Puede suponer que ningún obstáculo se superpone a la posición del jugador o del objetivo.
- No necesariamente necesita encontrar la ruta mínima.
- El jugador solo puede moverse hacia la izquierda, derecha, arriba y abajo, no en diagonal.
- Puede tomar la entrada de cualquier manera conveniente.
- Puede suponer que siempre existirá un camino para que el jugador llegue al objetivo.
- Obviamente, para cada entrada existen múltiples rutas válidas, elija una.
- Suponga
N > 2que la cuadrícula será al menos3 x 3.
Ejemplos
Entrada: 9, [6, 0], [3, 8], [[0, 5], [2, 2], [6, 4], [8, 2], [8, 7]]
Posible salida:[[6, 0], [6, 1], [6, 2], [6, 3], [5, 3], [5, 4], [5, 5], [5, 6], [5, 7], [5, 8], [4, 8], [3, 8]]
Entrada: 6, [1, 0], [3, 5], [[1, 2], [2, 5], [5, 1]]
Posible salida:[[1, 0], [1, 1], [2, 1], [2, 2], [2, 3], [2, 4], [3, 4], [3, 5]]
Nota
Tenga en cuenta que Xes para filas y Ypara cols. No los confunda con las coordenadas en una imagen.
Editar
Como señaló @digEmAll, debido a las reglas #2y #3, playerY = 0y targetY = N-1. Entonces, si lo desea, puede tomar solo como entrada playerXy y targetX(si eso acorta su código).
