Création d'un systeme de points dans un jeu

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 .
A voir également:

4 réponses

alain1967 Messages postés 10 Statut Membre 3
 
Bonjour,
je n'ai pas testé ton script, mais tu ne poses pas de question dans ton post, quel est ton problème?
0
FXPHANTOM Messages postés 61 Statut Membre
 
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>';
}
?>
0
Camuke Messages postés 227 Statut Membre 88
 
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.
0
FXPHANTOM Messages postés 61 Statut Membre
 
ok je t'envoie ça le plus rapidement possible ! merci !
0