JeuWeb - Crée ton jeu par navigateur
[Réglé]Distance entre 2 hexagones - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Réglé]Distance entre 2 hexagones (/showthread.php?tid=1312)

Pages : 1 2 3 4


RE: Distance entre 2 hexagones - Scha - 23-06-2007

denisc a écrit :En fait, j'ai fait quelques essais de calcul... Ma formule est correcte SAUF pour quelques cases adjacentes...

En fait, elle était fausse pour un sacré paquet de cases, j'ai peur que tu ne redoubles ta troisième ;-)

Blague à part, je te remercie beaucoup, car ton idée de départ était bien bonne, et je n'aurai pas trouvé sans toi :-)

Voilà donc un code qui fonctionne, dans tous les cas, avec une carte comme celle dessinée par Denis. J'espère qu'il pourra servir à d'autres.
Code PHP :
<?php 
$dx
=abs($ax-$bx);
$dy=abs($ay-$by);

if (
$dx<($dy/2) ){
$delta = $dx;}
else{
if (
$ay%2==1){

if ( (
$dy%2==1) && (($ax-$bx)>-1) ){
$delta = floor($dy / 2 );}
else{
$delta = ceil($dy / 2 );}}
else{
if ( (
$dy%2==1) && (($ax-$bx)<1) ){
$delta = floor($dy / 2 );}
else{
$delta = ceil($dy / 2 );}}}

$resultat=$dx+$dy-$delta;
Cette formule peut certainement être optimisée, et je suis preneur de toutes autres solutions ou tuyaux sur les hexagones. Je garde les autres solutions mentionnées ici de côté, même si je ne les ai pas encore bien comprises, car je vais avoir d'autres difficultés à l'avenir.

Encore merci à ceux qui ont bien voulu m'aider. A+


RE: Distance entre 2 hexagones - denisc - 29-07-2007

Scha a écrit :En fait, elle était fausse pour un sacré paquet de cases, j'ai peur que tu ne redoubles ta troisième ;-)

Oulà!
heureusement, ça fait 23 ans que je l'ai passé ma troisième Big Grin