18-06-2010, 05:16 PM
Random puis check en sql si la positions est prise par un where, si sql te retourne rien, tu fait un insert, s'il te retourne quelque chose, la position est prise donc rerandom puis reverrif etc...
On va dire que cette solution est viable quand tu as une énorme quantité de positions libres... mais lorsque tu aura plus de 75% de positions de prises je pense qu'il faudra faire plusieurs tests avant de trouver une position de libre...
Reste ensuite une solution de faux aléatoire, tu note en sql/fichier le nombre d'inscrit et a partir de cette valeur, tu crée un algorithme qui te sort une position galaxie/SS/position
exemple:
$inscrit=nombre d'inscrits avant le joueur
moi perso je ferai:
$inscrit++;
$galaxie=($inscrit%10)*10;
$systeme=($inscrit%399)*399;
$position=($inscrit%15)*15;
Je base ce système sur une mise en place de 10 galaxie, 399 système par galaxie et 15 positions par système (config ogame si je me souvient bien...)
Il faudrait vérifier que cet algo ne ressort jamais deux fois les mêmes valeurs, j'ai pas le temps de tester mais j'ai déjà vu un codeur faire quelque chose de similaire... c'était pour un FPS (pas le même style :p)...
On va dire que cette solution est viable quand tu as une énorme quantité de positions libres... mais lorsque tu aura plus de 75% de positions de prises je pense qu'il faudra faire plusieurs tests avant de trouver une position de libre...
Reste ensuite une solution de faux aléatoire, tu note en sql/fichier le nombre d'inscrit et a partir de cette valeur, tu crée un algorithme qui te sort une position galaxie/SS/position
exemple:
$inscrit=nombre d'inscrits avant le joueur
moi perso je ferai:
$inscrit++;
$galaxie=($inscrit%10)*10;
$systeme=($inscrit%399)*399;
$position=($inscrit%15)*15;
Je base ce système sur une mise en place de 10 galaxie, 399 système par galaxie et 15 positions par système (config ogame si je me souvient bien...)
Il faudrait vérifier que cet algo ne ressort jamais deux fois les mêmes valeurs, j'ai pas le temps de tester mais j'ai déjà vu un codeur faire quelque chose de similaire... c'était pour un FPS (pas le même style :p)...