2017-09-22 59 views
-2

我編寫一個程序,播放隨機網球遊戲,並返回一組分數。在程序結束時我有一個while循環,那是不正確的。我有一個功能,即完成了所有的隨機點,並將其推到一個數組,所以這裏是循環js while循環不符合條件

while(true){ 
    lvl(); 
    if(p1>=3){ 
     if(g1>=2){ 
      scr.push("Player 1 win"); 
      return false 
     } 
    } 
    if(p2>=3){ 
     if(g2>=2){ 
      scr.push("Player 2 win"); 
      return false 
     } 
    } 
} 

,如果我離開它是同時(真),唯一的條件,就是要滿足是我的電腦粉碎,如果我改變它更類似while(p1 < 10)它會反正運行循環,直到p1是9,不擔心if語句,必須在某些條件下終止循環。我怎樣才能解決這個問題?對於信息g1 = p1-p2(並且對於p2也是相同的)。同樣在玩遊戲,即使所有的停止信號得到滿足,繼續玩,直到P1 = 9

[ [ 'Love-all' ], 
    [ 'Fifteen', 'Love' ], 
    [ 'Thirty', 'Love' ], 
    [ 'Thirty', 'Fifteen' ], 
    [ 'Forty', 'Fifteen' ], 
    [ 'Forty', 'Thirty' ], 
    [ 'Deuce' ], 
    [ 'Advantage player 1', 'Forty' ], 
    [ 'Deuce' ], 
    [ 'Advantage player 1', 'Advantage player 2' ], 
    [ 'Advantage player 1', 'Advantage player 2' ], 
    [ 'Advantage player 1', 'Advantage player 2' ], 
    [ 'Advantage player 1', 'Advantage player 2' ], 
    [ 'Advantage player 1', 'Advantage player 2' ], 
    [ 'Advantage player 1', 'Advantage player 2' ] ] 

這裏是控制檯顯示

+0

「p1」,「p2」,「g1」和「g2」的值如何更新? – Darlesson

+0

如果循環永遠不會退出,那麼顯然導致返回語句的'if'條件永遠不會成立。 (Math.random()<0.5){ p1 ++; – David

+0

if(Math.random()<0.5)其他{ p2 ++; } –

回答

0

您的計算機崩潰,因爲你很可能使用100 %CPU使用率或與之相近的東西。你通常不希望while(true)沒有某種delay在那裏的CPU不是一直在同一線程中始終計算的東西。此外,您想用break聲明代替while(true)聲明,而不是return聲明。

+0

現在會嘗試中斷,thx –

+0

仍然相同,我很肯定所有滿足循環的條件都滿足了,那就是p1或p2有3個或更多點,p1-p2(反之亦然)是2或更多 –