Bonsoir, j'ai un problème sur un algorithme de recherche d'élèment le plus proche. Voici tout de suite le code:
Le console.log me renvoie ici NaN.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function rechercheTourProche(){ var coordonnees = []; var minimum; var xT = []; var yT = []; for (var i = 0; i < ensembleTour.length; i++){ xT.push(ensembleTour[i].offsetLeft); yT.push(ensembleTour[i].offsetTop); } var xM = []; var yM = []; for (var i = 0; i < ensembleTour.length; i++){ xM.push(ensembleMob[i].offsetLeft); yM.push(ensembleMob[i].offsetTop); } for (t = 0, m =0; t < ensembleTour.length && m < ensembleMob.length; m++,i++){ coordonnees = Math.sqrt(((xT[t]-xM[m])*(xT[t]-xM[m]))+((yT[t]-yM[m])*(yT[t]-yM[m]))); //un peu laborieux mais je voulais pas faire de connerie avec le Math.pow } for (var i =0; i < coordonnees.length; i++){ minimum = Math.min(coordonnees[i]); } alert(coordonnees); }
Ici le problème est, je pense, l'incrémentation à chaque tour de variable. Au début de l'algorithme, je stock dans xT, xY les coordonnées de chaque tour, et dans xM et yM les coordonnées de chaque mob, dans des tableaux.
C'est ensuite ici que le problème est je pense, je veux calculer la distance séparant chaque mob de chaque tour. Ensemble si il y a 4 mobs et 3 tours, je veux que le mob compares la distance entre les différents tours pour savoir laquelle est la plus proche. Le problème est je pense dans la boucle for, en effet à chaque passage de boucle, j'incrémente ma tour +1 et mon mob +1, sauf que si il y a plus de mob que de tour, la boucle for ne fonctionne plus, puisque le tableau ensembleTour.length()+1 n'existe pas.
Si quelqu'un pouvait m'éclairir sur le problème.
Merci beaucoup bonne soirée![]()
Partager