Le problème que j'essaie de résoudre est d'avoir 16 animaux différents et j'ai besoin d'écrire un script PHP qui demande à l'utilisateur 4 questions oui/non et chaque question rétrécit les animaux disponibles jusqu'à ce que la réponse soit finalement affichée. Cela signifie que la question suivante dépendra de ce que l'utilisateur a répondu à la question précédente. Avez-vous une idée de comment je peux faire cela sans utiliser beaucoup de déclarations if else. Ci-dessous est ce que j'ai fait jusqu'à présent, pas fini, mais si je continue en utilisant des déclarations if je vais finir avec trop, il doit y avoir une meilleure façon de le faire. Quelqu'un m'a suggéré d'utiliser des tableaux dans des tableaux, mais cela ne m'aide pas. Toute aide serait très appréciée.Construire un système expert/une décision basée sur PHP
<?php
session_set_cookie_params(2592000);
session_start();
?>
<html>
<head>
<title>Creature Guessing Game</title>
</head>
<body>
<h1>Creature Guessing Game</h1>
<p> Welcome to the creature guessing game! </p>
<p>Click the button
below to start or restart the game </p>
<form method="post" action="Creatures.php">
<input type='submit' name='start' value='Start Game' />
</form>
<?php
//If form not submitted, display form.
if (!isset($_POST['start'])){
?>
<?php
} //If form is submitted, process input
else{ //Question 1
echo "<p>Does the creature live mainly on the land?</p>";
echo "<form method='post' action='Creatures.php'>
<input type='submit' name='yes1' value='Yes' />
<input type='submit' name='no1' value='No' />
</form>";
}
if ($_POST['yes1']){ //Q1 - Yes
echo "<p>Does the creature have wings?</p>";
echo "<form method='post' action='Creatures.php'>
<input type='submit' name='yes2' value='Yes' />
<input type='submit' name='no2' value='No' />
</form>";
}
elseif($_POST['no1']){ //Q1 - No
echo "<p>Does the creature live in the water?</p>";
echo "<form method='post' action='Creatures.php'>
<input type='submit' name='yes3' value='Yes' />
<input type='submit' name='no3' value='No' />
</form>";
}
if ($_POST['yes2']){ //Q1 - Yes and Q2 - Yes
echo "<p>Can the creature fly?</p>";
echo "<form method='post' action='Creatures.php'>
<input type='submit' name='yes4' value='Yes' />
<input type='submit' name='no4' value='No' />
</form>";
}
elseif($_POST['no2']){ //Q1 - Yes and Q2 - No
echo "<p>Is the creature an insect?</p>";
echo "<form method='post' action='Creatures.php'>
<input type='submit' name='yes5' value='Yes' />
<input type='submit' name='no5' value='No' />
</form>";
}
if ($_POST['yes3']){ //Q1 - No and Q2 - Yes
echo "<p>Is the creature a reptile?</p>";
echo "<form method='post' action='Creatures.php'>
<input type='submit' name='yes6' value='Yes' />
<input type='submit' name='no6' value='No' />
</form>";
}
if ($_POST['no3']){ //Q1 - No and Q2 - No
echo "<p>Does the creature have feathers?</p>";
echo "<form method='post' action='Creatures.php'>
<input type='submit' name='yes7' value='Yes' />
<input type='submit' name='no7' value='No' />
</form>";
}
if ($_POST['yes4']){ //Q1 - Yes and Q2 - Yes and Q3 - Yes
echo "<p>Is the creature your thinking of white?</p>";
echo "<form method='post' action='Creatures.php'>
<input type='submit' name='yes8' value='Yes' />
<input type='submit' name='no8' value='No' />
</form>";
}
if ($_POST['yes8']){ //Answer 1: Q1 - Yes and Q2 - Yes and Q3 - Yes and Q4 - Yes
echo "<p>Its a goose!</p>";
}
if ($_POST['no8']){ //Answer 2: Q1 - Yes and Q2 - Yes and Q3 - Yes and Q4 - No
echo "<p>Its a hawk!</p>";
}
?>
</body>
</html>
Je vais essayer cela et voir comment je m'entends, pourrait également se pencher sur l'utilisation de tableaux et une déclaration de commutateur comme suggéré par l'autre gars. – Harry12345
de cette façon est la meilleure façon de faire, permet une expansion dynamique (en ajoutant plus d'animaux) ou ayant plusieurs animaux comme la réponse «correcte». Cette approche est la plus dynamique et donc, à mon avis, la meilleure solution au problème. –