【发布时间】:2018-05-19 16:35:11
【问题描述】:
我用 PHP 制作了一个纸牌游戏,但我遇到了一些问题。
if ($_SESSION["bet"] != NULL)
{
echo "Your starting bankroll is: " . $_SESSION["bankroll"] . "<br>";
echo "Your bet is: " . $_SESSION["bet"] . "<br>";
}
我收到了用户的输入。问题是,当游戏第一次加载时,用户输入输入并点击提交时,游戏将无法运行。条件($_SESSION["bet"] != NULL) 为真,资金未定义。
有什么方法可以正确设置吗?是否有一些 PHP 方法可以初始化变量一次然后只在会话开始时工作,然后其余代码可以处理该变量如何更新?如果用户现在点击提交而没有任何内容,则资金变量会被初始化,因此游戏仍然可以运行,但无法正常启动。
if ($_SESSION["bet"] == NULL)
{
$_SESSION["bankroll"] = 1000;
}
每次用户提交NULL 输入时,资金变量都会初始化为 1000。我想改变它。
更多代码...更新中...
session_start();
$_SESSION["bet"] = $_POST["bet"];
echo "<br>";
//print_r($_SESSION);
if ($_SESSION["bet"] != NULL)
{
echo "Your starting bankroll is: " . $_SESSION["bankroll"] . "<br>";
echo "Your bet is: " . $_SESSION["bet"] . "<br>";
}
if ($_SESSION["bet"] == NULL)
{
$_SESSION["bankroll"] = 1000;
}
else if ($_SESSION["bet"] > 1000 || $_SESSION["bet"] < 0)
{
echo " Please enter between 0 and 1000.";
}
else if ($_SESSION["bet"] > $_SESSION["bankroll"])
{
echo "You can't enter more than what you have.";
}
else
{
$deck = array();
for($x = 0; $x < 54; $x++) {
$deck[$x] = $x;
}
shuffle($deck);
//Then more stuff. This one for example...
if(($houseSuits[0] == -100) || ($houseSuits[1] == -100) || ($houseSuits[2] == -100) || ($houseSuits[3] == -100))
{
echo "<br>";
echo '<center> PLAYER WINS! (HOUSE HAS JOKER) </center>';
echo "<br>";
$_SESSION["bankroll"] = $_SESSION["bankroll"] + $_SESSION["bet"]; //THESE NEED TO BE ADDRESSED.
}
我只是想找到一种方法在开始时将 BANKROLL 初始化为 1000。我这样做的方式是提交一个NULL 值,然后假设用户不再提交空值。
我希望将 BANKROLL 初始化为 1000,然后让游戏关注 BANKROLL 如何更新。
我找到了一种方法,但这不是正确的方法,这就是我寻求帮助的原因。
谢谢。
【问题讨论】:
-
你需要展示一些更相关的代码。你如何初始化会话?发生的第一个代码是什么?
-
也许我的问题不在于会话...只是每次用户提交空值时,资金都会设置为 1000。我想更改它...而游戏不会除非用户输入空(或 null)值,否则启动。
-
我觉得信息够了,游戏大概300行代码。我只是不希望每次用户输入任何内容时都将资金重置为 1000,并且我希望游戏在用户输入有效输入时开始。
-
没有看到你的代码我不知道你是怎么做到的。您需要一些方法来初始化用户,他们的资金设置为您提供的任何内容。然后,当他们下注时,就会减少他们的资金。看来您在分离时将所有这些功能混合在一起。
-
我更新了它...我希望我能修复这个小错误,它将完成这个项目 100%