Salut,
Je ne comprend pas tres bien ta question ou du moins ton but.
Tu veux un programme deja fait ?
Sinon, j´ai deja fait un truc dans le genre en C++ ( ahh, c´etait le bon temps), en fait on avait plusieurs variables :
- 1 pour le but ( tu l´as)
- 1 pour le maximum de champs de vision.
Notre technique a été de calculer sur le champs de vision le meilleur chemin pour aller à notre but et de revérifier à chaque avancée que le chemin pris est le meilleur.
J´essaye d´être plus clair :
Tout d´abord tu est en ( 0,0) et tu veux aller en ( 10,10) bon dans un but normal, tu vas essayer de faire une ligne droite. Le but pour ton champ de vision est de créer des sortes de sous-parties de ta ligne, cad, au lieu de regarder directement en ( 10,10) tu regarde en ( 2,2) et tu cherches le meilleur chemin pour avancer. Lorsque tu avances, ( quand tu es en ( 1,1) par exemple) tu reverifies ton chemin pour essayer d´accéder en ( 3,3).
Ceci permet donc, en cas de mur, de gérer les possibilités de manière restreinte ( ton algo cherchera la solution dans son champ de vision) et non de manière globale ( ton algo cherchera la solution complète.
Lors de mon dvp, j´ai trouvé qu´avoir un champ de vision n´est pas autre chose que d´avoir un but mais en plus restreint avec comme contrainte de départ que le champ de vision se rapproche de ton but.
J´espere ne pas avoir été trop brouillon et avoir répondu à ta question.
Dans tous les cas, si tu cherche quelque chose sur le plus court chemin, il existe 2 algos très connus qui sont le A* et le raytracing.
Apprend aussi comment faire les diagramme déterministes ( je suis pas certain que ca s´appelle comme ça).
Voila, j´espère t´avoir été utile.