我需要为我的脚本添加while循环。这是一段$积分< 17(draw_cards)永不结束while()循环
也许你可以猜到,这是一款纸牌游戏。我希望它是那么简单,因为它不会工作。它陷入了无尽的循环。
if(FORM_stand("Stand")){
while ($total_dealer < 17){
list_dealer_hand();
draw_dealer_card();
}
}
如果我运行我的脚本,它会一直持续下去。显示我的例子7, 7, 3, 7, 3, 9, 7, 3, 9, 2, 7, 3, 9, 2, 6, 7, 3, 9, 2, 6, 10, 7, 3, 9, 2, 6, 10, Ace, 7, 3, 9, 2, 6, 10, Ace, 5, 7, 3, 9, 2, 6, 10, Ace, 5, Queen, 7, 3, 9, 2, 6, 10, Ace, 5, Queen, Jack, 7, 3, 9, 2, 6, 10, Ace, 5, Queen, Jack, King, 7, 3, 9, 2, 6, 10, Ace, 5, Queen, Jack, King, 4, 7, 3, 9, 2, 6, 10, Ace, 5, Queen, Jack, King, 4, 8,
最终重复 Notice: Undefined index
但我如果我是使用前:
if(FORM_stand("Stand")){
list_dealer_hand();
if ($total_dealer < 17){
draw_dealer_card();
}
}
我需要手动按下Stand
几次,因为它是一个if
但这种方式它将继续绘制卡直到他的积分是17或更高,这意味着If
工程,但While
永不止息。
我不知道你是否需要更多的信息,如果你这样做,请询问。因为我一直坚持这个while循环2天了。似乎没有人能够帮助我。
在此先感谢!
PS:如果我运行while循环,并按下控制+ F5显示所有的错误后,它让我看到这一点:3, 10, 7, 9, 6, King, 8, Queen, Jack, 4, 2, Ace, 5, ,
和尖端部:85 Busted!
我知道所有的点一起是95,但因为我为我的Ace使用了一个案例,如果积分大于11,它将被计为1而不是11. Mabye这一点可以帮助你!
list_dealer_hand()
function list_dealer_hand() {
foreach($_SESSION["dealer_hand"] as $dealer_card=>$points) {
echo $dealer_card;
echo ', ';
}
}
和draw_dealer_card()
function draw_dealer_card() {
$dealer_card = array_rand($_SESSION["dealer_pile"]);
$_SESSION["dealer_hand"][$dealer_card] = $_SESSION["dealer_pile"][$dealer_card];
unset($_SESSION["dealer_pile"][$dealer_card]);
}
我对分案制度如下所示:
$total_dealer = 0;
$text_dealer = '';
foreach($_SESSION["dealer_hand"] as $dealer_card=>$dealer_points) {
switch($dealer_card)
{
case "King":
case "Queen":
case "Jack":
case "10":
$total_dealer += 10;
break;
case "Ace":
if($total_dealer >= 11)
{
$total_dealer += 1;
}else{
$total_dealer += 11;
}
break;
case "9":
$total_dealer += 9;
break;
case "8":
$total_dealer += 8;
break;
case "7":
$total_dealer += 7;
break;
case "6":
$total_dealer += 6;
break;
case "5":
$total_dealer += 5;
break;
case "4":
$total_dealer += 4;
break;
case "3":
$total_dealer += 3;
break;
case "2":
$total_dealer += 2;
break;
}
}
编辑:会话dealer_pile
if(!isset($_SESSION["dealer_pile"])) $_SESSION["dealer_pile"] = array(
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => 7,
8 => 8,
9 => 9,
10 => 10,
'Jack' => 10,
'Queen' => 10,
'King' => 10,
'Ace' => 11);
你的价值永远不会大于17这就是为什么检查你的价值是递增或不 –
增量'$在while循环 –
是'$ total_dealer' total_dealer'在list_dealer_hand()中改变值;' – krishna