Je débute en php et j'aimerai faire le jeu pierre papier ciseaux mais je suis perdue. Est ce que vous pourriez m'éclairer ? Je voulais le faire avec de images cliquables et une réponse en image.
Désolé si ça ressemble à rien. Merci d'avance.
Voici le code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Jeu</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Jeu</h1>
<form method="post" action="mini-jeu.php">
Prénom : <input name="prenom" type="text" value=""><br><br>
Nom : <input name="nom" type="text" value=""><br><br>
<input name="ciseaux" id="ciseaux "value="1" type="image" src="images/1.jpg" >
<input name="papier" id="papier "value="2" type="image" src="images/2.jpg" >
<input name="pierre" id="pierre "value="3" type="image" src="images/3.jpg" >
</form>
<br><hr><br>
<?php
//on vérifie si le formulaire a bien été soumis
if (isset($_POST['ciseaux']) and ($_POST['prenom']) and ($_POST['nom']))
{
echo "Le choix de l'utilisateur est <img src='images/1.jpg'>";
$choix=1;
}
if (isset($_POST['papier'])and ($_POST['prenom']) and ($_POST['nom']))
{
echo "Le choix de l''utilisateur est <img src='images/2.jpg'>";
$choix=2;
}
if (isset($_POST['pierre'])and ($_POST['prenom']) and ($_POST['nom']))
{
echo "Le choix de l''utilisateur est <img src='images/3.jpg'>";
$choix=3;
}
else
{
echo 'erreur'
}
$choixordi=rand(1,3);
if ($choixordi==1)
{
echo "Le choix de l''ordinateur est <img src='images/1.jpg'>";
}
if ($choixordi==2)
{
echo "Le choix de l''ordinateur est <img src='images/2.jpg'>";
}
if ($choixordi==3)
{
echo "Le choix de lordinateur est <img src='images/3.jpg'>";
}
if ($choix==1)
{
if ($choixordi==1) $gagne=0;
if ($choixordi==2) $gagne=1; // ordi gagne
if ($choixordi==3) $gagne=2; // util gagne
}
if ($choix==2)
{
if ($choixordi==2) $gagne=0;
if ($choixordi==1) $gagne=2; // util gagne
if ($choixordi==3) $gagne=1; // ordi gagne
}
if ($choix==3)
{
if ($choixordi==3) $gagne=0;
if ($choixordi==1) $gagne=1; // ordi gagne
if ($choixordi==2) $gagne=2; // util gagne
}
if ($gagne==0)
{
echo "MATCH NULL>";
;
}
if ($gagne==1)
{
echo "VOUS AVEZ PERDU";
}
if ($gagne==2)
{
echo "VOUS AVEZ GAGNE !";
}
?>
</body>
</html>
quel est le problème que tu rencontres ? (indice : "ça ne marche pas" n'est pas une réponse acceptable il faut nous donner les messages d'erreur, ou du moins le comportement remarqué)
Pas d'aide concernant le code par MP, le forum est là pour ça :)
J'ai un msg d'erreur à la ligne 83 et si je retire le msg d'erreur pour quand tous les champs ne sont pas remplis ,j'ai un soucis à la ligne 146 , 158 ,170, 183,197 et 211.
Il y a pas le message si la personne a gagné non plus.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Jeu</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Jeu</h1>
<form method="post" action="mini-jeu.php">
Prénom : <input name="prenom" type="text" value=""><br><br>
Nom : <input name="nom" type="text" value=""><br><br>
<input name="ciseaux" id="ciseaux "value="1" type="image" src="images/1.jpg" >
<input name="papier" id="papier "value="2" type="image" src="images/2.jpg" >
<input name="pierre" id="pierre "value="3" type="image" src="images/3.jpg" >
</form>
<br><hr><br>
<?php
//on vérifie si le formulaire a bien été soumis
if (isset($_POST['ciseaux']) and ($_POST['prenom']) and ($_POST['nom']))
{
echo "Le choix de l'utilisateur est <img src='images/1.jpg'>";
$choix=1;
}
if (isset($_POST['papier'])and ($_POST['prenom']) and ($_POST['nom']))
{
echo "Le choix de l''utilisateur est <img src='images/2.jpg'>";
$choix=2;
}
if (isset($_POST['pierre'])and ($_POST['prenom']) and ($_POST['nom']))
{
echo "Le choix de l''utilisateur est <img src='images/3.jpg'>";
$choix=3;
}
$choixordi=rand(1,3);
if ($choixordi==1)
{
echo "Le choix de l''ordinateur est <img src='images/1.jpg'>";
}
if ($choixordi==2)
{
echo "Le choix de l''ordinateur est <img src='images/2.jpg'>";
}
if ($choixordi==3)
{
echo "Le choix de lordinateur est <img src='images/3.jpg'>";
}
if (($choixordi==1) and ($choix==1)
or ($choixordi==2) and ($choix==2)
or ($choixordi==3) and ($choix==3))
{
echo " égalité ";
}
else {
if (($choixordi==1) and ($choix==3)
or ($choixordi==2) and ($choix==1)
or ($choixordi==3) and ($choix==2))
{
echo "gagné";
}
else
{
echo ' vous avez perdu ';
}
}
?>
</body>
</html>
J'ai fait ça , je trouve ça plus simple et j'ai moins d'erreur mais là c'est une erreur à la ligne 149 et 175.
Et je n'ai pas rajouté le msg d'erreur si les champs nom et prénom ne sont pas remplis
Alors, dans ton form, tu ne met pas de action si ca pointe sur la même page
Si tu avais lu la doc input image, tu saurais qu'on ne peut pas lui assigner de value.
Au clic sur un input image tu as le nom de l'image_x et image_y qui te donnent le lieu en pixel de là ou tu as cliqué et non un retour comme tu le souhaite, donc tu n'auras jamais "l'user a chois ciseau" ou "l'user a choisi 1"
Un var_dump($_POST) t'aurais permis de voir cette erreur
Il faut toujours tester ses variables pour savoir ce qu'elles retournent
on ne parrlera pas des balises ouverts et non fermées, ni des <br /> à bannir
- Edité par Ptit Rat 3 décembre 2020 à 21:01:02
jeu pierre papier ciseaux
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Pas d'aide concernant le code par MP, le forum est là pour ça :)