Salut a tous !!
N'hésitant à faire appel à la grande richesse des codeurs de ce site, j'ai un nouveau probleme
En effet, j'ai un extrait de code ci dessous, qui a besoin d'une grande amelioration. Le but de celui-ci est pour un mmorg en navigateur. C'est un jeu dans lequel on se deplace dans la galaxie a travers des vortex qui teleporte votre flotte (EmpireUniverse2 pour les curieux). Pour choisir le chemin le plus court nous avons besoin d'un calculateur de trajectoire :
Le code en vigueur pour l'ensemble des 20 000 joueurs en ligne est celui ci:
Il tourne sur une matrice de 1000*1000 cases
function Calcul_Chemin($Depart,$Arrive,&$Distance,$Saut,$tabvortex) {
$Chemin = array();
for($i=$Saut;$i< sizeof($tabvortex);$i++) {
$D1 = Calcul_Distance($Depart,$tabvortex[$i]["IN"]);
$D2 = Calcul_Distance($Arrive,$tabvortex[$i]["OUT"]);
if($D1 + $D2 < $Distance) {
if(!isset($Cheminold)) $Cheminold = $Chemin;
$Chemin = $Cheminold;
$Chemin[sizeof($Chemin)] = $i;
$CheminResult = Calcul_Chemin($tabvortex[$i]["OUT"],$Arrive,$D2,i+1,$tabvortex) ;
$Chemin = array_merge($Chemin,$CheminResult);
$Distance = $D1 + $D2;
}
}
return $Chemin;
}
Il fonctionne mais ne trouve pas le chemin le plus court, il prends le premier chemin plus court que la ligne droite qu'il trouve, ce qui pose probleme.
Quelqu'un aurait il l'experience pour reussir ce challenge.
Notre cher codeur officiel du site php demande de l'aide^^
Lien de telechargement du site complet:
http://app216.free.fr/eu2/dist/
merci d'avance