JeuWeb - Crée ton jeu par navigateur
Detection des persos, probleme de tableau - 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 : Detection des persos, probleme de tableau (/showthread.php?tid=1064)



Detection des persos, probleme de tableau - Kassak - 10-04-2007

Bonjour bonjour, j'ai un petit probleme pour mon jeu, pour la detection des autres persos.
Je souhaite que, quand mon personnage aille sur une case où il y a 5 autres personnes, elles apparaissent sous la map, dans un ptit tableau, chacune a la suite des autres ( de gauche a droite)

Avec mon code, elles apparaissent chacune en dessous des autres, je ne sais pas pourquoi, ni comment changer ça^^Surement un probleme tout bête, mais je ne vois pas...

si vous voulez voir : http://kassak-projects.fr.nf/Site/accueil.php
Login : testure MDP : testure

Et voici mon bout de code pour la detection des autres persos :

Code PHP :
<?php 
for ($x=$posx;$x<=$posx;$x++) {
for (
$y=$posy;$y<=$posy;$y++) {

$sq = mysql_query('SELECT pseudo FROM membre WHERE posx='.$x.' AND posy='.$y.' ORDER BY posx DESC,posy DESC') or die(mysql_error());
while (
$data = mysql_fetch_array($sq)) {
if (!empty(
$data['pseudo']) and $data['pseudo'] != $_SESSION['pseudo'])// si on trouve un joueur et que ce n'est biensur pas vous
{
echo
'<table border="1" cellspacing="0" cellpadding="0"><td><form action="action_joueur.php" method="post">Joueur présent :<br>';
echo
'<select name="action_joueur">';
echo
'<option value="'.$data['pseudo'].'">'.$data['pseudo'].'</option>'; //on l'affiche
echo '</select><input type="submit" name="attaque" value="Attaquer">'."\n";
echo
'</select><input type="submit" name="don" value="Faire un don">'."\n";
echo
'</form></td></table>'."\n" ;
}
}



}
mysql_free_result($sq);

}


Voilou merci de m'aider^^


RE: Detection des persos, probleme de tableau - Chewbacca - 10-04-2007

et bien il me semble que faire un tableau pour chacun des persos n'est pa une bonne idée :
Daclare ton tableau avant la boucle ainsi qu'une ligne, puis dans la boucle rajoute une cellule pour chaque perso, et enfin après la boucle, referme la ligne et le tableau


RE: Detection des persos, probleme de tableau - Kassak - 10-04-2007

En effet ca marche, merci bien^^


RE: [REGLE]Detection des persos, probleme de tableau - icien - 10-04-2007

un truc me chiffonne:
A quoi servent tes boucles vu que tu n'y passera qu'une fois: $x=$posx et $y=$posy premier passage puis on sort puisque $x+1 et $y+1 seront forcément >$posx et $posy.


RE: [REGLE]Detection des persos, probleme de tableau - Kassak - 10-04-2007

Quoi que non ca ne marche pas,, maintenant meme quand il n'y a pas de perso, je vois la grosse bordure, et la taille du tableau se divise par le nombre de personnage present, dont il vaut mieux faire un tableau par personnage, comment faire alors? on reprend le proleme depuis le début^^

Edit : Je n'en sais trop rien pour cela, ce bout de code ne vient pas de moi^^


RE: Detection des persos, probleme de tableau - icien - 10-04-2007

Code PHP :
<?php 
$sq
= mysql_query('SELECT pseudo FROM membre WHERE posx='.$x.' AND posy='.$y.' AND pseudo<>"'.$_SESSION['pseudo'].'" ORDER BY posx DESC,posy DESC') or die(mysql_error());
$numenr = mysql_num_rows($sq); //nombre d'enregitrement revnoyés par la requete
if ($numenr<>0)
{
//s'il y a des joueurs dans le coin
echo '<table border="1" cellspacing="0" cellpadding="0"><td><form action="action_joueur.php" method="post">Joueur présent :<br>';
echo
'<select name="action_joueur">';
while (
$data = mysql_fetch_array($sq))
{
echo
'<option value="'.$data['pseudo'].'">'.$data['pseudo'].'</option>'; //on l'affiche
}
echo
'</select>';
echo
'<input type="submit" name="attaque" value="Attaquer">'."\n";
echo
'<input type="submit" name="don" value="Faire un don">'."\n";
echo
'</form></td></table>'."\n" ;
}
mysql_free_result($sq);

A mon avis comme ca, c'est plus optimisé.


RE: Detection des persos, probleme de tableau - Teclis01 - 10-04-2007

Oui mais donner le code ainsi sans que la personne réfléchisse je trouve cela un peu c'est dommage...


RE: Detection des persos, probleme de tableau - icien - 10-04-2007

C'est pas faux. Malgré tout, je pense qu'un codeur censé doit comparer son code avec la correction et en déduire les fautes. Surtout que j'applique simplement les corrections proposées Smile


RE: Detection des persos, probleme de tableau - Kassak - 10-04-2007

Ce n'est toujours pas ce que je veux faire^^

Je souhaite que chaque personnage ai un tableau a lui tout seul, et non que les noms noms soient dans une liste, c'est ce que j'avais avant Wink


RE: Detection des persos, probleme de tableau - Byleth - 10-04-2007

Si je ne me trompe pas, tu as mis les pseudos ou Id des autres joueurs sur la map dans un tableau, nan?

Moi je créé un tableau avec juste les autres joueurs autour (donc je teste dans mon premier tableau pour les 9 cases autour avec une boucle et si je trouve quelqu'un, j'ajoute au nouveau tableau).

Une fois que j'ai mon nouveau tableau, je teste pour voir s'il existe et si oui, j'utilise un foreach pour afficher les infos

Code PHP :
<?php 
Voici MON code qui fait quelque chose du genre
, je te laise l'améliorer : avec $persoy et $persox les coordonnées du joueur, $TabFactions qui m'indique la faction des autres joueurs et $TabPseudos leurs pseudos (ça tu peux simplifier)

Code PHP :
<?php 
for($y=$persoy-1;$y<$persoy+2;$y++) { //on cherche en y
for($x=$persox-1;$x<$persox+2;$x++) // on cherche en x
{if (isset($TabFactions[$x][$y]) && $TabPseudos[$x][$y]!=$TabPseudos[$persox][$persoy]) { //si on trouve un joueur qui n'est pas soi même
$TabAdversaires[]=$TabPseudos[$x][$y];}
}
}

if (isset(
$TabAdversaires)) { // si il y a bien des gens autour de toi

foreach($TabAdversaires as $adversaire) {
// là tu créé un tableau pour chaque autre joueur
}