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 .
A voir également:
- Création d'un systeme de points dans un jeu
- Restauration systeme windows 10 - Guide
- Creation de site web - Guide
- Création d'un compte google - Guide
- Creation compte gmail - Guide
- Comment insérer des points de suite sur word - Guide
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?
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>';
}
?>
//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>';
}
?>