【问题标题】:Checking for winner in Blackjack检查二十一点的赢家
【发布时间】:2012-12-12 14:44:31
【问题描述】:

在用户单击“站立”后,我的程序正在检查我的二十一点游戏中的获胜者。 当我尝试使用 AJAX 调用获胜者时,我想看看是否有获胜者。如果是,则提醒获胜者。否则,允许庄家采取行动。任何帮助将不胜感激。

支架后的样品结果/输出:用户手=dQ,hJ; val = 20 - 提示“wins! in stand”

这手牌之后的预期结果:-转到 ajaxDealer(user);

php代码: ($checkPlayerHandValue 工作正常,即如果用户有 C5,HQ,将返回 15)

function checkWinner($u, $d, $uValue) {
    if($uValue > 21)
        return $d;
}

if($checkPlayerHandValue > 0) {
    $checkPlayerHandValue = checkPlayerHandValue($user);
    $winner = checkWinner($user, $dealer , $checkPlayerHandValue);
}

 $row = mysql_fetch_array($checkNextTurn);
 $playerTurn = $row['user'];
 echo($playerTurn."|");
 echo($winner);

js代码:

xmlhttpB.onreadystatechange=function() {
            if (xmlhttpB.readyState==4 && xmlhttpB.status==200) {
                elements = xmlhttpB.responseText.split("|");
                user = elements[0];
                winner = elements[1];
                //alert(winner);
                if(winner != "")
                    ajaxDealer(user);
                else 
                    alert(winner + " wins! in stand");              

            }
            clickButton = true;
        }

【问题讨论】:

  • 到目前为止我还没有遇到过。一切都检查出来。当 $winner 离开 php 文件时,它被设置为 "",即还没有获胜者
  • 那有什么问题呢? AJAX 请求是否返回了它需要的内容?
  • 是的,但是 javascript 没有对返回的内容采取适当的行动(我也将我的标签修改为包含 js 以解决问题)

标签: php javascript ajax


【解决方案1】:

帮自己一个忙,开始使用带有 AJAX 模块的 jQuery 库。

就您的问题而言,您能否告诉我们您的代码当前存在什么问题(没有发生的事情应该发生,反之亦然)。

另外,我认为这个逻辑是不正确的:

if(winner != "")
   ajaxDealer(user);
else 
  alert(winner + " wins! in stand"); 

并且应该翻转:

if(winner == "")
   ajaxDealer(user);
else 
  alert(winner + " wins! in stand");     

【讨论】:

  • 至于你的第一条评论,这是一个我们真的没有触及 jQuery 的类的最终项目。当我有时间时,我可能会继续学习它。至于您的第二条评论,我在上面说明了正在发生的事情和没有发生的事情。在这个具体的例子中,没有获胜者并且该函数应该自动调用dealerHit() 函数。相反,它会提醒获胜者,但由于没有获胜者,因此警报中的语句显示为“wins! in stand”
  • 好的,我现在看到了您的示例,但是在那个代码块中它有点难以阅读。您确定 AJAX 请求正在进行吗?您指定了网址吗?尝试 alert(xmlhttpB.responseText) 以确保您得到了一些东西。
  • 很抱歉给您带来了困惑。肯定有什么东西要回来了。我尝试了您的建议并找回了“用户”+ | + ""
  • 做到了 //alert(winner);你把工作注释掉了?你试过 alert(user) 吗?另外,我认为你的逻辑是颠倒的(见答案编辑)
  • 是的,警报都很好。如果没有获胜者,我还更改了 php 以返回“notdone”以使其更清晰。 if 语句似乎有些古怪
猜你喜欢
  • 2022-12-16
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
  • 2019-07-15
  • 1970-01-01
  • 2012-01-03
相关资源
最近更新 更多