Маленькая игра в кости, которая не отражается должным образом

Это игра в кости, когда пользователь выбирает число и нажимает кнопку «Отправить», на странице случайным образом отображается число на кости, и если пользователь угадал правильно, он должен сказать «да, вы поняли правильно», в противном случае он скажет «извините, что вы ошибаетесь». Но это не повторило бы, «Вы правильно догадались!» когда число совпадает. В чем проблема? Он говорит, извините, что это неправильно, несмотря ни на что. Спасибо вам большое!

<html>
<body>
<h1>Dice Game!</h1>

<h1>"Please guess a number on the dice!"</h1><?php
if ($_POST['subBtn']) {
$num = $_POST['number'];

if ($num == "$roll") {
$comment = "you guessed right!";
} else if ($num != "$roll") {
$comment = "sorry it's wrong!";
}
}
?>

<p>
<form name="number" action="activity-dice-game.php" method="post">
<select name="number">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<input type="submit"name="subBtn" value="submit"/></input>
</form>
</p>

<?php
$roll = rand(1,6);
echo "<p>You rolled a " . $roll . ". </p>";
echo "<img src=\"images/die" . $roll . ".gif\" alt=\"die image\">";
?>

</b> <? echo $comment; ?><br />

</body>
</html>

0

Решение

Проблема в том, что при загрузке формы $roll не установлен, когда вы проверяете, если $num представленный пользователь равен этому! Это означает, что независимо от того, что

if($num == $roll)

Эквивалентно:

if($num == null)

Что никогда не будет правдой!

Просто положи $roll = rand(1,6) в верхней части сценария.

0

Другие решения

Это должно работать:

<html>
<body>
<h1>Dice Game!</h1>

<h1>"Please guess a number on the dice!"</h1><?php
if ($_POST['subBtn']) {
$num = $_POST['number'];
$roll = rand(1,6);

if ($num == "$roll") {
$comment = "you guessed right!";
} else if ($num != "$roll") {
$comment = "sorry it's wrong!";
}
}
?>

<p>
<form name="number" action="activity-dice-game.php" method="post">
<select name="number">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
<input type="submit"name="subBtn" value="submit"/></input>
</form>
</p>

<?php
echo "<p>You rolled a " . $roll . ". </p>";
echo "<img src=\"images/die" . $roll . ".gif\" alt=\"die image\">";
?>

</b> <? echo $comment; ?><br />

</body>
</html>
0

По вопросам рекламы [email protected]