【问题标题】:Random number generator and if then statements随机数生成器和 if then 语句
【发布时间】:2013-12-01 02:44:01
【问题描述】:

此代码应该提示输入两个玩家姓名,并为每个玩家生成一个介于 1 和 6 之间的随机数。然后应该比较这两个数字并提供哪个玩家的输出具有更高的数字,或者如果有平局则显示平局。有时这是有效的,有时它会相反,有时它会说两个数字不匹配。

有人对我有什么想法吗?

var playerOne = " "
var playerTwo = " "
var rollWinner = " "
var p1number = 0;
var p2number = 0;
var end = " "

main()



function main() 
{

    do {
      getNames()
      rollDice()
      displayResults()
      endProgram()
    }
  while (end == "yes")


}


function getNames()
{
    playerOne = prompt("Please enter the name of Player One: ")
    playerTwo = prompt("Please enter the name of Player Two: ")

}

function rollDice()
{

    p1Number = Math.floor((Math.random()*6)+1)
    p2Number = Math.floor((Math.random()*6)+1)



    if (p1Number > p2Number) 
    {
        return playerOne
    }

    else if (p1Number < p2Number)
    {       
        return playerTwo
    }

    else 
    {   
        return "Sorry no winner, there was a tie"
    }   


}

function displayResults()
{
    window.alert(playerOne + " rolled a " + p1Number)
    window.alert(playerTwo + " rolled a " + p2Number)
    window.alert("The winner is! " + rollDice())

}



function endProgram()
  {
    end = prompt("Do you want to play again? Enter yes or no")
    if (end == "no")
     window.alert("Thank you for playing");

    else if (end == "yes")

    return end;
   }

【问题讨论】:

标签: javascript if-statement random numbers


【解决方案1】:
window.alert("The winner is! " + rollDice())

此线路第二次调用rollDice。您显示第一次调用的结果,然后重新滚动并显示第二次调用的返回值(可能不同)。

// display p1Number and p2Number from first roll
window.alert(playerOne + " rolled a " + p1Number)
window.alert(playerTwo + " rolled a " + p2Number)

// recall rollDice
window.alert("The winner is! " + rollDice())

【讨论】:

  • 出色的这就是我所缺少的,并解释了为什么有时它看起来有效而有时却没有。我解决这个问题的方法是将 if 然后从 rollDice 中提取出来,创建自己的名为 logic 的函数,然后从 displayResults 的最后一行运行它.
【解决方案2】:

displayResults() 中,您在为p1Numberp2Number 分配值之前显示它们的值(因为这发生在rollDice() 中)。

所以您的程序正在运行,但您的诊断输出误导了您。

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 2016-05-08
    • 2021-10-04
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多