Défi
Compte tenu de la taille de la grille, de la position des obstacles, de la position du joueur et de la position cible, votre tâche consiste à trouver un chemin pour que le joueur atteigne la cible et évite les obstacles en même temps (si nécessaire).
Contribution
- N : taille de la grille
N x N - P : Position du joueur
[playerposx, playerposy] - T : Position de la cible
[targetposx, targetposy] - O : Positions des obstacles
[[x1, y1], [x2, y2],...,[xn, yn]]
Production
Chemin : un chemin que le joueur peut utiliser pour atteindre la cible[[x1, y1], [x2, y2],...,[xn, yn]]
Règles
- Le point se
[0,0]trouve dans le coin supérieur gauche de la grille. - La position du joueur sera toujours sur le côté gauche de la grille.
- La position de la cible sera toujours sur le côté droit de la grille.
- La grille aura toujours au moins un obstacle.
- Vous pouvez supposer qu'aucun obstacle ne chevauche le joueur ou la position cible.
- Vous n'avez pas nécessairement besoin de trouver le chemin min.
- Le joueur ne peut se déplacer qu'à gauche, à droite, en haut et en bas et non en diagonale.
- Vous pouvez prendre l'entrée de n'importe quelle manière pratique.
- Vous pouvez supposer qu'il existe toujours un chemin pour que le joueur atteigne la cible.
- Évidemment, pour chaque entrée, il existe plusieurs chemins valides, choisissez-en un.
- Supposons
N > 2que la grille soit au moins3 x 3.
Exemples
Entrée: 9, [6, 0], [3, 8], [[0, 5], [2, 2], [6, 4], [8, 2], [8, 7]]
Sortie possible:[[6, 0], [6, 1], [6, 2], [6, 3], [5, 3], [5, 4], [5, 5], [5, 6], [5, 7], [5, 8], [4, 8], [3, 8]]
Entrée: 6, [1, 0], [3, 5], [[1, 2], [2, 5], [5, 1]]
Sortie possible:[[1, 0], [1, 1], [2, 1], [2, 2], [2, 3], [2, 4], [3, 4], [3, 5]]
Remarque
Notez que Xc'est pour les lignes et Ypour les cols. Ne les confondez pas avec les coordonnées d'une image.
Éditer
Comme l'a souligné @digEmAll, en raison des règles #2et #3, playerY = 0et targetY = N-1. Donc, si vous le souhaitez, vous pouvez prendre en entrée uniquement playerXet et targetX(si cela rend votre code plus court).
