Rechercher

Jeu du OXO (morpion) en PHP multijoueur

1 2 3

Anais
Date : 08/06/2007
Forum msgs : 22
Rank : Utilisateur

Jeu du OXO (morpion) en PHP multijoueur

Lien directde anais le 08/06/2007 à 14:15
Bonjour,
je suis debutante en PHP et je voudrais bien quelques conseils pour faire un jeu de X et O en php.
Ce que j'ai fait pour le moment:j''ai cree une base de donnee ou j'ai une table user(userid, username, password) une table game(gameid, valeur, userid) une table cell(cellname, time, gameid, valeur)

Je garde en $_SESSION l'utilisateur(le jeu peut etre joue a deux), la valeur pour chaque user, le game id.

Si c'est le tour d'un joeur il devrait avoir affiche des boutons si les cellules respectives n'on pas une valeur dans la table cell et les vvaleurs la ou il y a dans la table des valeurs inscrites.

Si ce n'est pas son tour, alors il devrait avoir que affiche les valeurs ou rien dans un tableau.

Le probleme est que je ne sais pas comment transmettre la valeur d'une cellule qui a ete clicke dans le tableau cell(sachant que cette valeur est en $_SESSION) et que je devrais afficher le tableau de 9 cellules avvec deux for.

J'arrive a afficher un tableau de 9 case en deux for, et afficherr leur numerro d'ordre avec un array de deux dimensions(less deux boucles).

Ca c'est mon raisonnement.

Vu que je n'arrive pas a avvancer il est possible que je marche sur une mauvaise piste avec cette idee, donc je suis prete a revvoir mon raisonnement si vous avez un meilleur

s'il vous plait donnez moi quelques idee comment reorganiser ce raisonnement prce que la je suis honnetement bloquee.

Lien ici : http://www.viaphp.net/demo/oxo/

Merci et a plus
Sky
sky
Date : 13/08/2003
Forum msgs : 4435
Rank : Admin
Localisation : toulouse

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde sky le 12/06/2007 à 21:16
Oui, c'est sur smile:
en faite je trouvé le morceau de code un peut compliqué se trouvé là ...

Pour savoir à qui le tour de jouer, on faos une fonction qui test au début. je pense aussi qu'il faut ajouter dans la table game un champ qui s'appelerai genre user_id_turn.

Chaque fois que queulqu'un jou, tu change l'id contenu dans user_id_turn. De cette façon tu peut savoir à qui le tour.

Bon, j'arrete là... vais taper un peut de code pour voir ce que ça donnerai en vrai ^^

On ce fais un chat si tu veut

Gunning Sky
ViaPHP : Cours PHP
A quoi sert Internet Explorer ? A télécharger Firefox !
Sky
sky
Date : 13/08/2003
Forum msgs : 4435
Rank : Admin
Localisation : toulouse

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde sky le 08/06/2007 à 15:51
Salut

J'ai déjà eu l'idée de faire un petit jeux comme ça à deux personnes en php, c'est sympa je trouve comme entrainement!

Je fais qq test et te répond d'ici peut smile:

Gunning Sky
ViaPHP : Cours PHP
A quoi sert Internet Explorer ? A télécharger Firefox !
Sky
sky
Date : 13/08/2003
Forum msgs : 4435
Rank : Admin
Localisation : toulouse

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde sky le 08/06/2007 à 16:32
J'y ai réfléchi un peut, et voici un 1er jet ...
Je doit sortir pour le boulot. Ce soir si j'ai le temps on peut se parler sur le chat. smile:
<?php
/*
  j'ai nommer chaque cell très simplement :
  1-1 1-2 1-3
  2-1 2-2 2-3
  3-1 3-2 3-3
 
  Je suppose que toute les verifications sur l'authenticité de la connexion des joueurs sont déjà faite
*/


// le tableau vide de référence
$tableau_vide = array();
$tableau_vide = array(
  1 => array('1-1'=>'','1-2'=>'','1-3'=>''),
  2 => array('2-1'=>'','2-2'=>'','2-3'=>''),
  3 => array('3-1'=>'','3-2'=>'','3-3'=>'')
);

// on va chercher dans la base les coups déjà joués par nos deux joueurs.
// table game : id, gameid, valeur, user1_id, user2_id
// table cell : id, cellname, time, gameid, valeur, userid
$gameid = addslashes($_SESSION['gameid']);
$requete = "SELECT * FROM game g,cell c WHERE g.gameid=c.gameid && g.gameid='$gameid'";
$sql = mysql_query($requete);
$nbr_resultat = mysql_num_rows($sql);

// si y'a plusieurs resultats, on alimente une variable à tableaux
$game_array = array();
if($nbr_resultat > 0)
{
  while($r => mysql_fetch_array($sql))
  {
    $tmp = explode('-',$r['cellname']);
    $ligne = $tmp[0];
    $cell = $r['cellname'];
   
    $game_array[$ligne] = array();
    $game_array[$ligne][$cell] = $r['valeur'];
  }
}

$tableau_rendu = '';
foreach($tableau_vide as $ligne => $colonne)
{
  // on test quand même la variable pour voir si elle vide ou non. Si vide, on la defini juste.
  foreach($colonne as $id => $data)
  {
    if(!isset($game_array[$ligne][$id]))
      $game_array[$ligne][$id] = '';
  }

  $tableau_rendu .= '
  <tr>
    <td>'
.$game_array[$ligne][$ligne.'-1'].'</td> <td>'.$game_array[$ligne][$ligne.'-2'].'</td> <td>'.$game_array[$ligne][$ligne.'-3'].'</td>
  </tr>'
;
}
?>

Gunning Sky
ViaPHP : Cours PHP
A quoi sert Internet Explorer ? A télécharger Firefox !
Anais
Date : 08/06/2007
Forum msgs : 22
Rank : Utilisateur

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde anais le 12/06/2007 à 13:30
donc tu as affiche les valeurs de la table cell, et merci de me montrer comment ca se fait, ce n'etait pas tout a fait debutant, soyons serieux.

comme on a deux joueurs quand c'est le tour d'un d'eux l'autre ne peut pas toucher aux cases, alors le code que tu m'as donne est pour qui atttend que l'autre joeur fasse son choix, et lui il voit affiche les donnees de la table.

Pendant ce temps l'autre voit affiche des valeurs mais aussi des bouttons qui n'ont pas de valeur.
Comment est ce que je fais pour l'autre joueur, pour afficher et des bouttons et des valeurs?

Et aussi quand je vais appuyer sur un boutton je dois enregistret dans la table la valeur et puis la afficher

Deja merci pour ca, c'est pas mal.

si tu as des idees pour les autres...smile
Sky
sky
Date : 13/08/2003
Forum msgs : 4435
Rank : Admin
Localisation : toulouse

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde sky le 12/06/2007 à 21:25
ha oui ... savoir si on a gagné ou non !
ça j'y ai pas pensé...

suis en train de l'écrire pour de vrai le jeux

Gunning Sky
ViaPHP : Cours PHP
A quoi sert Internet Explorer ? A télécharger Firefox !
Sky
sky
Date : 13/08/2003
Forum msgs : 4435
Rank : Admin
Localisation : toulouse

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde sky le 12/06/2007 à 22:42
j'ai mis en place l'interface avec la gestion des utilisateur (inscription + verification + connexion)

je verrai demain pour le jeux en lui même (pas de boulot demain !)

bonne nuit

Gunning Sky
ViaPHP : Cours PHP
A quoi sert Internet Explorer ? A télécharger Firefox !
Sky
sky
Date : 13/08/2003
Forum msgs : 4435
Rank : Admin
Localisation : toulouse

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde sky le 13/06/2007 à 11:06
Juste pour dire ou j'en suis.

je vient de finir la procedure de verification pour savoir a qui le tour est, l'action que l'on peut faire, et les fonctions des test en rapport.

allez, vais bosser un peut quand même ... faut bien vivre smile:

Gunning Sky
ViaPHP : Cours PHP
A quoi sert Internet Explorer ? A télécharger Firefox !
Anais
Date : 08/06/2007
Forum msgs : 22
Rank : Utilisateur

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde anais le 13/06/2007 à 11:37
SAlut,

c'est dommange de travailler sur ce jeu si tu ne travaille pas aujourd'hui.S'il te plait ne le fait pas.Il fait beau dehors et tout, peut etre demain on pourra en parler.

Je suis arrive a afficher un peu plus sur mon niveau les donnees de la base de donnees.

<html>
<head>
</head>
<body>


<?php

$con=mysql_connect('localhost','root','');
mysql_select_db("test_db",$con);

$res=mysql_query("SELECT cellname, val_id FROM cell ORDER BY cellname ASC&quotwink;

while($row=mysql_fetch_array($res))
{
$cell[$row['cellname']] = $row['val_id'];
}
print_r($cell);
echo '<table align=center bgcolor="#FFFF00">';
for($i=1;$i<4;$i++)
{
echo '<tr>';
for($j=1;$j<4;$j++)
{
echo '<td>';
echo $cell["$i"."$j"];
echo '</td>';
}
echo '</tr>';
}
echo '</table>';

mysql_close($con);

?>

</body>
</html>
Sky
sky
Date : 13/08/2003
Forum msgs : 4435
Rank : Admin
Localisation : toulouse

Re : Jeu du OXO (morpion) en PHP multijoueur

Lien directde sky le 13/06/2007 à 14:58
Ben, là je travail de chez moi ... donc je peut pas continuer le jeux de suite ^^

après un petit tennis ce soir, je continuerai smile:

j'ai pensé aussi qu'il faut faire un systeme de création de jeux. Genre une salle d'attente avec la liste de jeux en cours, les jeux ou il manque quelqu'un.

Gunning Sky
ViaPHP : Cours PHP
A quoi sert Internet Explorer ? A télécharger Firefox !

1 2 3

You need a account to use the forum.

Inscription

Connexion