-2

我,正在学习 PHP,作为我自己的一个项目,我正在开发一个小游戏,用户在其中猜测 1 到 100 之间的数字。如果他是正确的,那么它会显示相同的内容,否则它会显示答案。现在我将其限制为三次尝试,并且我希望用户在第三次尝试后看到一条消息“您的 3 次尝试结束”。以及一个“重试”按钮,该按钮会破坏会话并允许他重新开始游戏。请帮助我。

代码如下:

<?php

$rand= rand(1,100);

$guess=$_POST['guess'];
$submit=$_POST['submit'];
session_start();

if(isset($submit)) {

if (!isset($_SESSION["attempts"])) $_SESSION["attempts"] = 0;

if ($_SESSION["attempts"] < 3) {

    if($guess<1 ||$guess>100) {
        echo "your guess must be a number between 1 and 100";
    }
    elseif($guess!=$rand)
    {
        echo "Incorrect,the correct answer is".$rand;
        $_SESSION["attempts"] = $_SESSION["attempts"] + 1;
    }
    else
    {
        echo "That is correct!";
    }
}

}
else
{
    unset($_SESSION["attempts"]);
    include_once('game.php');
}

?>
4

2 回答 2

1

您做了所有这些并且不知道如何添加 1 行?

if ($_SESSION["attempts"] < 3) {
    ...
} else {
    echo '3 tries are over, game over.';
    session_destroy();
    ...
}
于 2012-08-13T11:10:11.190 回答
0

如果有会话,请不要在每次提交时取消设置会话。这样你就永远无法计算尝试次数,因为它们总是被未设置的重置。

这是您的代码字节,其中未设置的注释已被注释掉,并添加了“3 次尝试”消息。

$guess=$_POST['猜测']; $submit=$_POST['提交']; session_start();

if(isset($submit)) { if (!isset($_SESSION["attempts"])) $_SESSION["attempts"] = 0;

if ($_SESSION["attempts"] < 3) {

if($guess<1 ||$guess>100) { echo "你的猜测必须是 1 到 100 之间的数字";

} elseif($guess!=$rand) { echo "不正确,正确答案是".$rand; $_SESSION["尝试"] = $_SESSION["尝试"] + 1;

}

else { echo "这是正确的!";

}

} 别的 {

echo "您的 3 次尝试已完成";

}

} 别的{

//unset($_SESSION["attempts"]); include_once('game.php');

}

于 2012-08-13T11:09:47.917 回答