JeuWeb - Crée ton jeu par navigateur

Version complète : Coordonnée d'un joueur pour la carte
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2 3
Bonjour,

Voilà, depuis quelque temps je réfléchi à un truc simple mais je ne sais pas le mettre en oeuvre, un trou on va dire Wink

Alors je souhaite qu'à l'inscription, le joueur est automatiquement une coordonnée sur la carte, de forme : X:XX:X
Je sais quil faut utiliser la fonction rand() (je crois ^^) mais comment vérifié que le nombre obtenu n'est pas déjà pris ?
Faut-il faire un while ? un for ? ou autre ?

Merci d'avance,
Cordialement,
Kok.
Pour un nombre aléatoire, utilise plutôt mt_rand. Il existe aussi des fonctions pour avoir un nombre aléatoire sous SQL.

Pour ma part, tu as la réponse.
Sinon quand tu as ton nombre, il te suffit de voir s'il y a quelque chose. Donc avec simplement une petite requête. Si c'est pris, tu dois refaire une recherche de coordonnées. Cependant, tu dois faire attention car ta page ne peut tourner plus de 30 secondes (c'est une variable configurable sur le serveur).

Une techique plus simple est de prévoir plusieurs cases d'insertion. Autrement dit, tes personnages lorsqu'ils apparaissent, ils apparaissent théoriquement là. Ce que je veux dire, c'est que sur le plateau, ils n'apparaîtront pas tant qu'ils n'ont pas décidé d'aller sur une des cases aux alentours. C'est un sytème pratique mais qui peut amener à voir un attroupement de joueur près des points d'apparition pour tuer les revenus/venus.
un conseil: cela dépendra beaucoup de ta manière de stocker les données en base. Donc prévoit déja cette partie, et ensuite l'insertion coulera de source....
Bon j'imagine que tes coordonnées seront quelque part stockées dans ta base. Tu chopes toutes celles encore libres (parce que tu auras pris soin de mettre un champ dispo avec les coordonnées ^^) et tu fais un mt__rand() sur celles qu'il te reste. Une fois que tu as attribué ses coordonnées au nouveau joueur n'oublie de les mettre indispos.
Nessper a écrit :Bon j'imagine que tes coordonnées seront quelque part stockées dans ta base. Tu chopes toutes celles encore libres (parce que tu auras pris soin de mettre un champ dispo avec les coordonnées ^^) et tu fais un mt__rand() sur celles qu'il te reste. Une fois que tu as attribué ses coordonnées au nouveau joueur n'oublie de les mettre indispos.

Tu veux garder continuellement toutes les entrées indisponibles ? -_-'
comment ça ?
J'ai du mal comprendre ce que tu as écrit ...
Nan, je pense que tu as bien compris :
Nessper apparemment propose de garder toutes les coordonnées dans sa base, les libres comme les pas libres,
Donc Loetherie a demandé à Nessper si il était sûr que CT une bonne idée ^^
Voila ^^

Mysterarts, médiateur...
Si vous avez un problème de communication : 0 800 800 800 !

EDIT : pour ma part, je faisais ce que propose Nessper, car j'avais un nombre de place définis et inférieur à 500 sur la première version d'un ancien jeu. Depuis j'ai abandonné l'idée de conserver les places disponible...
tu as ta table villes (qui recense toutes les coordonnées que les joueurs peuvent se voir attribuer à l'inscription.). Elle contient un champs coordonnees et un champ disponibilite et un champ idville.
Quand un joueur s'inscrit tu fais :
Code PHP :
<?php 
$query
= "SELECT idville FROM villes WHERE disponibilite='oui' ORDER BY rand()";
$sql = mysql_query($req);

$row = mysql_fetch_row($req);

mysql_query ("UPDATE villes SET disponibilite='non' WHERE idville='".$row[0]."'");
mysql_query ("UPDATE joueurs SET position_ville='".$row[0]."' WHERE id='".$id_joueur."'");
Je faisais exactement ça sur mon ancien jeu...
Mon nouveau ne contient pas de coordonnées prédéfini, donc je ne fais plus ça perso...
Mais je pense que c'est pas mal de faire comme ça, ça simplifie bien les choses...
Genre si tu veux faire une carte des villes, t'as pas besoins de t'embêter : tu boucle juste sur la table...

Mysterarts, mais pourquoi faut que je me complique autant la tache sur mon nouveau jeu, moi ?
Pages : 1 2 3