Création d'un systeme de points dans un jeu
FXPHANTOM
Messages postés
61
Statut
Membre
-
FXPHANTOM Messages postés 61 Statut Membre -
FXPHANTOM Messages postés 61 Statut Membre -
Avis aux Webmaster confirmé
Bonjour,
Je vous expose mon problème : j'ai créé un petit jeu simple : le but est de trouver un numéro mystère .
Je souhaites qu'à chaque fois que l'utilisateur appui sur le bouton de validation , -1 soit soustrait de son crédit et lorsque que le crédit soit à zero il le redirige vers une pages pour recharger son crédit . Ensuite donné un temps à l'utilisateur par exemple 24h pour trouver le nombre mystère et que lorsque le temps est écouler , il ne puisse plus rentrer de nombre et qu'il soit noté le pseudo du gagnant .
Donc J'ai créé une base de donnée en md5 (voir la requete sql ci dessous)
CREATE TABLE IF NOT EXISTS `utilisateurs` (
`id_user` int(10) unsigned NOT NULL AUTO_INCREMENT,
`login` varchar(50) NOT NULL DEFAULT '',
`pass` varchar(50) NOT NULL DEFAULT '',
`nom` varchar(50) NOT NULL DEFAULT '',
`prenom` varchar(50) NOT NULL DEFAULT '',
`daten` varchar(50) NOT NULL DEFAULT '',
`adresse1` varchar(50) NOT NULL DEFAULT '',
`adresse2` varchar(50) NOT NULL DEFAULT '',
`codepostal` int(10) NOT NULL,
`ville` varchar(50) NOT NULL DEFAULT '',
`pays` varchar(50) NOT NULL DEFAULT '',
`tel1` varchar(50) NOT NULL DEFAULT '',
`email` varchar(50) NOT NULL DEFAULT '',
`privilege` varchar(50) NOT NULL DEFAULT '',
`credit` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
et voici le code du jeu développé jusqu'à maintenant avec quelques indications pour aider à la compréhension :
<?php session_start(); ?>
<?php require_once('auth/connexion.php'); ?>
//jeu
<?php
if (!isset($_POST['reponse']) AND !isset($_POST['counter']))
{
$rand = rand(0,1000);
$cnt = $_SESSION['credit'];
echo 'Tentez votre chance !!! <br/>
Vous aves 100 coups pour trouver le nombre mystère compris entre 0 et 1000 <br/>';
}
else if (isset($_POST['reponse']) AND empty($_POST['reponse']))
{
$rand = $_POST['random'];
$cnt = $_SESSION['credit'];
echo 'N\'ouliez pas de mettre une reponse!!!<br/>';
}
else
{
$rand = $_POST['random'];
$cnt = $_SESSION['credit'];
$number = $_POST['reponse'];
if (preg_match('![0-9]!', $number))
{
$cnt--;
if ($number < $rand)
echo 'le nombre est superieur! <br/>';
else if ($number > $rand)
echo 'le nombre est inferieur! <br/>';
else if ($number == $rand)
{
echo 'vous avez gagné !!!<br/>';
echo '<a href="index-5.php">rejouer?</a> - <a href="#" onclick="window.close()">fermer la fenetre</a>';
exit ();
}
}
else
{
echo 'Votre réponse ne doit contenir que des chiffres !!!<br/>';
}
}
if ($cnt > 0)
{
echo
'Vous avez encore ' . $cnt . ' coups à jouer
<form action="index-5.php" method="post" name="lol">
<input type="text" name="reponse" />
<input type="hidden" name="counter" value="'. $cnt .'" />
<input type="hidden" name="random" value="'. $rand .'" />
<input type="submit" value="envoi" />
</form>';
$sql = mysql_query("SELECT credit FROM utilisateurs WHERE id_user='$id_user'");
$result = mysql_fetch_array($sql) or die(mysql_error());
$cnt = $result[0];
// Calcul des points
$pointfin = $cnt-1;
// Operation
mysql_query("UPDATE utilisateurs SET credit = $pointfin WHERE id_user='$id_user'") or die ('Erreur : '.mysql_error());
// Rappel le nombre de points
echo'<br/>Vous avez '. $pointfin .' points';
echo '<script language="javascript">document.lol.reponse.focus();</script>';
echo '<a href="#" onclick="window.close()">fermer la fenetre</a>';
}
else
{
echo 'Vous avez perdu ! Le nombre secret etait ' . $rand . ' !<br/>';
echo '<a href="index-5.php">rejouer?</a> - <a href="#" onclick="window.close()">fermer la fenetre</a>';
}
?>
En vous remerciant par avance pour votre aide .
Bonjour,
Je vous expose mon problème : j'ai créé un petit jeu simple : le but est de trouver un numéro mystère .
Je souhaites qu'à chaque fois que l'utilisateur appui sur le bouton de validation , -1 soit soustrait de son crédit et lorsque que le crédit soit à zero il le redirige vers une pages pour recharger son crédit . Ensuite donné un temps à l'utilisateur par exemple 24h pour trouver le nombre mystère et que lorsque le temps est écouler , il ne puisse plus rentrer de nombre et qu'il soit noté le pseudo du gagnant .
Donc J'ai créé une base de donnée en md5 (voir la requete sql ci dessous)
CREATE TABLE IF NOT EXISTS `utilisateurs` (
`id_user` int(10) unsigned NOT NULL AUTO_INCREMENT,
`login` varchar(50) NOT NULL DEFAULT '',
`pass` varchar(50) NOT NULL DEFAULT '',
`nom` varchar(50) NOT NULL DEFAULT '',
`prenom` varchar(50) NOT NULL DEFAULT '',
`daten` varchar(50) NOT NULL DEFAULT '',
`adresse1` varchar(50) NOT NULL DEFAULT '',
`adresse2` varchar(50) NOT NULL DEFAULT '',
`codepostal` int(10) NOT NULL,
`ville` varchar(50) NOT NULL DEFAULT '',
`pays` varchar(50) NOT NULL DEFAULT '',
`tel1` varchar(50) NOT NULL DEFAULT '',
`email` varchar(50) NOT NULL DEFAULT '',
`privilege` varchar(50) NOT NULL DEFAULT '',
`credit` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
et voici le code du jeu développé jusqu'à maintenant avec quelques indications pour aider à la compréhension :
<?php session_start(); ?>
<?php require_once('auth/connexion.php'); ?>
//jeu
<?php
if (!isset($_POST['reponse']) AND !isset($_POST['counter']))
{
$rand = rand(0,1000);
$cnt = $_SESSION['credit'];
echo 'Tentez votre chance !!! <br/>
Vous aves 100 coups pour trouver le nombre mystère compris entre 0 et 1000 <br/>';
}
else if (isset($_POST['reponse']) AND empty($_POST['reponse']))
{
$rand = $_POST['random'];
$cnt = $_SESSION['credit'];
echo 'N\'ouliez pas de mettre une reponse!!!<br/>';
}
else
{
$rand = $_POST['random'];
$cnt = $_SESSION['credit'];
$number = $_POST['reponse'];
if (preg_match('![0-9]!', $number))
{
$cnt--;
if ($number < $rand)
echo 'le nombre est superieur! <br/>';
else if ($number > $rand)
echo 'le nombre est inferieur! <br/>';
else if ($number == $rand)
{
echo 'vous avez gagné !!!<br/>';
echo '<a href="index-5.php">rejouer?</a> - <a href="#" onclick="window.close()">fermer la fenetre</a>';
exit ();
}
}
else
{
echo 'Votre réponse ne doit contenir que des chiffres !!!<br/>';
}
}
if ($cnt > 0)
{
echo
'Vous avez encore ' . $cnt . ' coups à jouer
<form action="index-5.php" method="post" name="lol">
<input type="text" name="reponse" />
<input type="hidden" name="counter" value="'. $cnt .'" />
<input type="hidden" name="random" value="'. $rand .'" />
<input type="submit" value="envoi" />
</form>';
$sql = mysql_query("SELECT credit FROM utilisateurs WHERE id_user='$id_user'");
$result = mysql_fetch_array($sql) or die(mysql_error());
$cnt = $result[0];
// Calcul des points
$pointfin = $cnt-1;
// Operation
mysql_query("UPDATE utilisateurs SET credit = $pointfin WHERE id_user='$id_user'") or die ('Erreur : '.mysql_error());
// Rappel le nombre de points
echo'<br/>Vous avez '. $pointfin .' points';
echo '<script language="javascript">document.lol.reponse.focus();</script>';
echo '<a href="#" onclick="window.close()">fermer la fenetre</a>';
}
else
{
echo 'Vous avez perdu ! Le nombre secret etait ' . $rand . ' !<br/>';
echo '<a href="index-5.php">rejouer?</a> - <a href="#" onclick="window.close()">fermer la fenetre</a>';
}
?>
En vous remerciant par avance pour votre aide .
Configuration: Windows 7 Firefox 3.5.7
4 réponses
-
Bonjour,
je n'ai pas testé ton script, mais tu ne poses pas de question dans ton post, quel est ton problème? -
ah oui pardon !!! j'ai enormement de mal à ecrire dans ma base de donnée, quand j'ouvre une session de membre , il me redirige sur la page jeu.php et lorsque je commence à jouer , j'insère un nombre dans la case , le valide et je souhaites que dans ma base de donnée dans la colonne credit , il soustrait "1" mais je n'y parviens pas . Le problème que j'ai souvent c'est lorsque je joue il passe de 200 à 199 coups a jouer mais ne descend pas en dessous et rien ne s'inscrit dans ma bas de donnée . Depuis hier j'ai apporté des modification et toujours le même problème :
//page "Jeu.php"
<?php require_once('auth/connexion.php'); ?>
<?php
if (!isset($_POST['reponse']) AND !isset($_POST['counter']))
{
$rand = rand(0,1000);
$cnt = $_SESSION['credit']; // modification que j'ai apportée
$id_user = $_SESSION['id_user'];
echo 'Tentez votre chance !!! <br/>
Vous aves 200 coups pour trouver le nombre mystère compris entre 0 et 1000 <br/>';
}
else if (isset($_POST['reponse']) AND empty($_POST['reponse']))
{
$rand = $_POST['random'];
$id_user = $_SESSION['id_user']; // modification que j'ai apportée
$cnt = $_SESSION['credit'];
echo 'N\'ouliez pas de mettre une reponse!!!<br/>';
}
else
{
$rand = $_POST['random'];
$cnt = $_SESSION['credit'];
$number = $_POST['reponse'];
$id_user = $_SESSION['id_user']; // modification que j'ai apportée
if (preg_match('![0-9]!', $number))
{
$cnt--;
if ($number < $rand)
echo 'le nombre est superieur! <br/>';
else if ($number > $rand)
echo 'le nombre est inferieur! <br/>';
else if ($number == $rand)
{
echo 'gagné!!!<br/>';
echo '<a href="index-5.php">rejouer?</a> - <a href="#" onclick="window.close()">fermer la fenetre</a>';
exit ();
}
}
else
{
echo 'Votre réponse ne doit contenir que des chiffres !!!<br/>';
}
}
if ($cnt > 0)
{
echo
'Vous avez encore ' . $cnt . ' coups à jouer
<form action="index-5.php" method="post" name="lol">
<input type="text" name="reponse" />
<input type="hidden" name="counter" value="'. $cnt .'" />
<input type="hidden" name="random" value="'. $rand .'" />
<input type="submit" value="envoi" />
</form>';
// Récupération du nombre de points
$sql = mysql_query("SELECT credit FROM utilisateurs WHERE id_user='$id_user'");
$result = mysql_fetch_array($sql) or die(mysql_error());
// Calcul des points
$pointfin = $cnt-1;
// Operation
$sql = "UPDATE utilisateurs SET credit='credit' WHERE id_user='$id_user'" or die ('Erreur : '.mysql_error());
// Rappel le nombre de points
echo'<br/>Vous avez '. $pointfin .' points';
echo '<script language="javascript">document.lol.reponse.focus();</script>';
echo '<a href="#" onclick="window.close()">fermer la fenetre</a>';
}
else
{
echo 'Vous avez perdu ! Le nombre secret etait ' . $rand . ' !<br/>';
echo '<a href="index-5.php">rejouer?</a> - <a href="#" onclick="window.close()">fermer la fenetre</a>';
}
?> -
tu pourrai mettre le formulaire pour jouer ou me l'envoyé par MP (message privé), je voudrai tester ton script pour essayer de résoudre ton problème.
-