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

Fermé
FXPHANTOM Messages postés 60 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 10 mai 2012 - 11 janv. 2010 à 17:14
FXPHANTOM Messages postés 60 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 10 mai 2012 - 12 janv. 2010 à 14:39
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 9 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 22 septembre 2010 3
12 janv. 2010 à 10:36
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 60 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 10 mai 2012
12 janv. 2010 à 10:50
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 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
12 janv. 2010 à 13:34
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 60 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 10 mai 2012
12 janv. 2010 à 14:39
ok je t'envoie ça le plus rapidement possible ! merci !
0

Discussions similaires