21-03-2008, 07:51 PM
Bonjour, connaissant un certain nombre de personnes utilisant des algorithmes de malade, ou faisant plein de calculs, afin de trouver la distance entre 2 cases de leur tableau ( une carte par exemple, avec pour chaque case, une coordonnées x;y par exemple ), je voulais juste vous montrer un moyen très simple d'y arriver
Ceci d'après la formule suivante, xb-xa;yb-ya, ce qui nous donne un x;y, si y>=x alors z = y, et si x>=y alors z = x, avec z le nombre de case entre les 2 points :
Ceci d'après la formule suivante, xb-xa;yb-ya, ce qui nous donne un x;y, si y>=x alors z = y, et si x>=y alors z = x, avec z le nombre de case entre les 2 points :
Code PHP :
<?
//liste des coordonnées, $x et $y sont les coordonnées d'arriver, $posx/y_joueur sont les coordonnées de départ
//abs() permet de ne travailler qu'en valeur absolue, donc pas de nombre négatif
$new_x = abs($x-$posx_joueur);
$new_y = abs($y-$posy_joueur);
//Verification afin de trouver le nombre de case
if($new_x >= $new_y){
$case = abs($new_x);
}
elseif($new_y >= $new_x){
$case = abs($new_y);
}
?>
Et voila, la variable $case contient le nombre de case entre les 2 points, il gère bien sur les diagonales