Impossible de trouver un titre pertinent pour ce post !
L'application est un jeu.
Le besoin est de connaître les entités qui se "voient" (cad, la distance entre deux entités du jeu est inférieure à une valeur arbitraire).
Je recherche un algorithme efficace pour obtenir : pour chaque entité, la liste des entités visibles.
Soit E l'ensemble des entités du jeu : { e1, e2, e3.... en }.
Soit P le prédicat tq P(e1,e2) retourne vrai si les entités e1 et e2 se "voient".
Soit V l'ensemble associatif des entités du jeu associées à l'ensemble des entités qui sont en vu { (e1,{ei,ej,ek...}), (e2,{ei,ej,ek...}), .... (en,{ei,ej,ek...}) }.
Voila l'algorithme de base [O(n²)]:
for ei = e1...en
for ej = e1...en
if ei != ej
if P(ei,ej)
V[ei].push(ej)
Vous l'aurez deviné.... j'y connais rien en algo. Cela dit, il y a certainement une ou plusieurs manières d'améliorer mon algo 'pourri'. Pouvez vous m'orienter vers une solution meilleure !?
Merci d'avance.
Message édité par xterminhate le 23-08-2005 à 21:24:51