23-01-2011, 10:35 PM
Bonsoir,
Après quelques temps au service de php et à la création de divers sites... J'ai eu la soudaine envie de créer un petit jeu par navigateur. Ce projet n'est restreints qu'à ma famille pour le moment. Bref, le système est assez simplet : On choisis entre un dragon, un dinosaure, un troll ou un centaure. Ensuite on à plusieurs action disponible (du type acheter, fouiller, se promener, combattre...). Ces actions ne sont faisable qu'a certains lieu. Actuellement je code la partie qui permet de fouiller. Comme je l'ai dit le code est très très simpliste. Mais j'ai un petit soucis. En fait, je cherche à ajouter 1 objet quand on fouille par terre mais l'update ne fonctionne pas... J'ai essayer en ne mettant pas +1 mais genre 35, et là, il UPDATE bien...
voici le code de la page :
voici les tables utiliser sur le système d'inventaire et d'objet :
Si ce système n'est pas très bien, vous pouvez m'orienté sur une meilleur façon ?
Après quelques temps au service de php et à la création de divers sites... J'ai eu la soudaine envie de créer un petit jeu par navigateur. Ce projet n'est restreints qu'à ma famille pour le moment. Bref, le système est assez simplet : On choisis entre un dragon, un dinosaure, un troll ou un centaure. Ensuite on à plusieurs action disponible (du type acheter, fouiller, se promener, combattre...). Ces actions ne sont faisable qu'a certains lieu. Actuellement je code la partie qui permet de fouiller. Comme je l'ai dit le code est très très simpliste. Mais j'ai un petit soucis. En fait, je cherche à ajouter 1 objet quand on fouille par terre mais l'update ne fonctionne pas... J'ai essayer en ne mettant pas +1 mais genre 35, et là, il UPDATE bien...
voici le code de la page :
<?php
//haute de page
include('structure/header.php');
//menu du site
include 'structure/identifiants.php';
include('structure/menu.php');
$_GET['m'] = (int) $_GET['m'];
$nombre = "";
?>
<div id="texte"><div id="overflow">
<div class="cadre"><div class="titre"></div><div class="marge_interne">
<!-- Début de la zone de texte -->
<?php
if($_GET['m'] == 1)
{
?>
<div id="T_ADA">Ici c'est la clairière ! Tu peux y combattre des <br>monstres sauvage.</div>
<table width="700">
<tr>
<td><a href="lieu.php?m=1&a=promener" class="TD">se promener</a></td>
<td><a href="lieu.php?m=1&a=fouiller" class="TD">fouiller par terre</a></td>
<td><a href="lieu.php?m=1&a=voir" class="TD">scruter les alentours</a></td>
</tr>
</table>
<br>
<?php
$action = (isset($_GET['a']))?htmlspecialchars($_GET['a']):'';
switch($action)
{
case "promener":
break;
case "fouiller":
//définition d'un nombre aléatoire
$min = 0;
$max = 0;
$trouve = mt_rand($min, $max);
switch($trouve)
{
case "0":
$trouve = "potion de soin";
$objet = "1";
$nombre +=1;
$query=$db->prepare('UPDATE sac SET id_objet = :objet, nombre = :nombre WHERE id_membre = :id_membre');
$query->execute(array(
'id_membre' => $id,
'objet' => $objet,
'nombre' => $nombre
))or die(print_r($db->errorInfo()));
break;
}
?>
Tu fouille par terre...<br>
En fouillant tu trouves <?php echo '<strong>'.$nombre.'</strong> '.$trouve; ?><br><br>
<?php
break;
case "voir":
break;
}
?>
<br>
<?php
}
?>
<!-- Fin de la zone de texte -->
</div></div>
</div></div>
<?php
//bas de page
include('structure/footer.php');
?>
voici les tables utiliser sur le système d'inventaire et d'objet :
--
-- Structure de la table `sac`
--
CREATE TABLE IF NOT EXISTS `sac` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_membre` int(11) NOT NULL,
`id_objet` int(11) NOT NULL,
`nombre` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `sac`
--
INSERT INTO `sac` (`id`, `id_membre`, `id_objet`, `nombre`) VALUES
(1, 1, 1, 1);
--
-- Structure de la table `objet`
--
CREATE TABLE IF NOT EXISTS `objet` (
`id` int(11) NOT NULL,
`objet` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `objet`
--
INSERT INTO `objet` (`id`, `objet`) VALUES
(1, 'Potion de soin');
Si ce système n'est pas très bien, vous pouvez m'orienté sur une meilleur façon ?
Savoir aimer, c'est aimer le savoir.
Mais alors quand on aime on sait ?
Mais alors quand on aime on sait ?