J'y ai déja réfléchis pour un village qui occupe une cases sur une map allant de moins l'infini a plus l'infini en x et y mais je vais le faire de 0 a plus l'infini en x et y.
Pour avoir un positionnement bien répartit j'avais procédé comme cecirand est un créateur de variable aléatoire entre deux chiffres)
Pourque tes villages soient éloigné il de recherche la position des joueurs dont les x sont compris entre ta position - 1 et + 1 et idem pour les y. Ensuite si ta requete est vide tu continue sinon tu chage ta position. Pour avoir un positionnement bien répartit j'avais procédé comme cecirand est un créateur de variable aléatoire entre deux chiffres)
Code PHP :
<?php
$sql=mysql_query("select posx, posy From village limit 0,5 order by id desc") //je recherche les derniers villages inscrits
while($data=mysql_fletch_assoc($sql))
{
$moyennexdesvillages .= $data['x'] / 5; //je fais la moyenne de la position des villages en additionnant les x de tout les villages divisé par le nombre de village
$moyenneydesvillages .= $data['y'] / 5; //idem pour les y
}
$posxdemonvillage = $moyennexdesvillages + rand(-5,5); //je détermine la position de mon village en x avec la moyenne des autres villages + une variable aléatoire
$posydemonvillage = $moyenneydesvillages + rand(-5,5); // idem en y
$sql = mysql_query( "Select posx, posy FROM village Where pox=$posxdemonvillage and posy=$posydemonvillage" );
$req = mysql_fletch_array($sql);
if($req['x'] == NULL OR $req['y'] == NULL) //si la place n'est pas déja occupée
{
mysql_query( "Insert into village Values( '', '$posxdemonvillage', '$posydemonvillage', '$monnom'"); //j'udapte la table (avec id auto increment)
}
else // si la place est occupée
{
$posydemonvillage = $moyenneydesvillages + rand(-5,5); //on repositionne
$posydemonvillage = $moyenneydesvillages + rand(-5,5);
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=la meme page">'; //et on recommence si vous pouviez trouvez un autre méthode car je ne sais pas comment faire sans réecrire le script a l'infini.
}
Voila j'espere que j'ai pu t'aider... Contacter moi pour toute question a propos de mon script et toute suggestion pour améliorer ce script est la bienvenue ^^ Ce n'est qu'un de mes premiers scipt alors soyez indulgent merci.