2013-02-03 83 views
-1

我想確定什麼是總和等於,然後做一個有關每個選擇的工作。我的第一選擇是如果總數是2,3或12,那麼你輸了。如果它是一個7或11,你輸了。除此之外的任何其他事情都已確立。首先我的代碼看起來像這樣,但每一次,它都去了其他的。價值錯誤的選擇

Math.floor(Math.random()*6+1); 


function game() 
{ 
if(total==2 || total==3 || total==12) 
    { 
     alert("You lose. Please start a New Round"); 
    } 
if(total==7 || total==11) 
    { 
     var temp= 2 * bet; 
     alert("You win $" + temp); 
    } 
else 
    { 
     alert("Point Established. Roll again."); 
     var point=total; 
     setTimeout(rolldice2,3000); 
    } 
} 

於是我改成了這樣::總正在通過2噸使用此功能加在一起的隨機數計算

function game() 

{ 
if(total==2 , 3 , 12) 
    { 
     alert("You lose. Please start a New Round"); 
     return; 
    } 
if(total==7 , 11) 
    { 
     var temp= 2 * bet; 
     alert("You win $" + temp); 
     return; 
    } 
else 
    { 
     alert("Point Established. Roll again."); 
     var point=total; 
     setTimeout(rolldice2,3000); 
    } 
} 

,但它只是說,你輸了無論。然後我終於拿出了回報。它做了第一個2而不是其他的。我希望能夠選擇一個 - 取決於變量總數是否相等 - 然後執行其作業,然後離開該功能。

+0

你在哪裏,在計算總? – krillgar

+0

儘管我很欣賞擲骰子,但您提供的代碼並未向我們透露足夠的信息,以幫助 – whitneyit

+0

之前的計算總數。我沒有包括它,因爲它計算得很好。我知道這是因爲它顯示總數,然後執行上述功能。這是問題發生的地方。 Math.floor(Math.random()* 6 + 1); – Patrick

回答

2

在你的情況total變量是undefined

通行證total給你的函數,並做了switch聲明

function game(total) 
{ 
    switch(total) 
    { 
     case 2 : 
     case 3 : 
     case 12 : { 
        alert("You lose. Please start a New Round"); 
        return; 
        } 
     case 7 : 
     case 11 : 
       { 
        var temp= 2 * bet; 
        alert("You win $" + temp); 
        return; 
       } 
     default : 
       { 
        alert("Point Established. Roll again."); 
        var point=total; 
        setTimeout(rolldice2,3000); 
       } 
    } 
} 
+0

這是一個比OP提供的代碼更容易閱讀的更好的結構,但它並未從根本上改變代碼的處理方式,而且很可能會提供相同的結果。 – krillgar

+0

我不同意,在OP代碼中,total是未定義的。在我的例子中,總數傳遞給函數並被處理。 – sdespont

+0

他在哪裏說「但它只是說你失去了什麼。」表示每次都會輸入2,3,12個案例。這意味着缺少代碼來獲得OP沒有與我們分享的總數。 – krillgar