我需要爲我的腳本添加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