2017-09-22 187 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或更多 –