2017-08-10 44 views
0

plnkr.co上没有错误,但div按钮仍然不起作用。使用两个数组生成“点”的JavaScript胡扯游戏

1)我在正确的轨道上从两个数组中拉出两个随机数,添加它们并在点击按钮时返回结果。 2)我在这里运行代码时看到了未定义的错误,但我不确定要排除什么问题。该代码在plnkr.co上没有提供任何错误。

//button event will generate 2 random numbers and add them together 
 

 
var num1 = [1,2,3,4,5,6]; 
 
var num2 = [1,2,3,4,5,6]; 
 
//var sum1 = [2,3,4,5,6,7,8,9,10,11,12] 
 
//var sum2 = num1 + num2 
 

 
function rollDice(){ 
 
\t var \t randomNumber = Math.floor(Math.random()*(num1 + num2)); 
 
\t document.getElementById("roll").innerHTML = randomNumber[rollDice]; 
 
\t }
body { 
 
    background-color: darkred; 
 
} 
 

 
h1 { 
 
    color: white; 
 
    text-align: center; 
 
} 
 

 
p { 
 
    color: white; 
 
    font-family: verdana; 
 
    font-size: 20px; 
 
}
<!DOCTYPE html> 
 
<html lang="en-US"> 
 
<head> 
 
\t <meta charset="utf-8"> 
 
\t <title>JavaScript Craps using arrays</title> 
 
\t <link rel="stylesheet" href="random.css"> 
 
\t <script src="craps.js"></script> 
 
\t 
 
</head> 
 
<body> 
 
<h1> Craps Lounge</h1> 
 

 
<div id="button"> 
 
<button onclick="randomNumber()">Roll the Bones</button> 
 
</div> 
 

 
<p id="roll"></p> 
 

 
</body> 
 
</html>

回答

0

与您的代码的几个问题:

  • 您需要实际调用rollDice()函数。

  • 你不能找到这样的randomNumber,你需要两个随机索引从你定义的两个数组中选择两个数字。您可以使用Math.random()进行此操作,如下面的代码所示:

  • randomNumber[rollDice]由于randomNumber是数字而不是对象,因此是错误的。

//button event will generate 2 random numbers and add them together 
 

 
var num1 = [1,2,3,4,5,6]; 
 
var num2 = [1,2,3,4,5,6]; 
 
//var sum1 = [2,3,4,5,6,7,8,9,10,11,12] 
 
//var sum2 = num1 + num2 
 

 
function rollDice(){ 
 
    var randomIndex1 = Math.floor(Math.random()*num1.length); 
 
    var randomIndex2 = Math.floor(Math.random()*num2.length); 
 
\t var \t randomNumber = num1[randomIndex1] + num2[randomIndex2]; 
 
\t document.getElementById("roll").innerHTML = randomNumber; 
 
\t }
body { 
 
    background-color: darkred; 
 
} 
 

 
h1 { 
 
    color: white; 
 
    text-align: center; 
 
} 
 

 
p { 
 
    color: white; 
 
    font-family: verdana; 
 
    font-size: 20px; 
 
}
<!DOCTYPE html> 
 
<html lang="en-US"> 
 
<head> 
 
\t <meta charset="utf-8"> 
 
\t <title>JavaScript Craps using arrays</title> 
 
\t <link rel="stylesheet" href="random.css"> 
 
\t <script src="craps.js"></script> 
 
\t 
 
</head> 
 
<body> 
 
<h1> Craps Lounge</h1> 
 

 
<div id="button"> 
 
<button onclick="rollDice()">Roll the Bones</button> 
 
</div> 
 

 
<p id="roll"></p> 
 

 
</body> 
 
</html>

+0

上一页代码: VAR \t randomNumber = Math.floor(的Math.random()*(+ NUM1 NUM2)); 我正在尝试构建一个将随机生成的数字舍入的变量。我的推测是该函数会添加并索引两个单独的数组然后添加它们。 – liquidsolomon

+0

新代码: var randomIndex1 = Math.floor(Math.random()* num1.length); var randomIndex2 = Math.floor(Math.random()* num2.length); var \t randomNumber = num1 [randomIndex1] + num2 [randomIndex2]; 在同一个函数内分别索引每个数组,并使用length属性来引用数组中的项数。另一个变量是为了将这两个结果加在一起而创建的 – liquidsolomon

+0

上一页HTML <按钮的onclick = “randomNumber()”>滚动骨骼 新的HTML <按钮的onclick = “rollDice()”>滚动骨骼 上一页HTML被调用的变量。新的HTML正在调用一个函数(对象)。 非常感谢您花时间! – liquidsolomon

0

我看到了一些东西。我重构了我相信你试图达到的目标。

//button event will generate 2 random numbers and add them together 
 

 
var num1 = [1, 2, 3, 4, 5, 6]; 
 
var num2 = [1, 2, 3, 4, 5, 6]; 
 
//var sum1 = [2,3,4,5,6,7,8,9,10,11,12] 
 
//var sum2 = num1 + num2 
 

 
function rollDice() { 
 
    
 
    //random # between 1 and 6 
 
    var dice1 = Math.floor((Math.random() * num1.length) + 1); 
 
    var dice2 = Math.floor((Math.random() * num2.length) + 1); 
 
    
 
    var randomNumber = dice1 + dice2; 
 
    document.getElementById("roll").innerHTML = randomNumber; 
 
}
body { 
 
    background-color: darkred; 
 
} 
 

 
h1 { 
 
    color: white; 
 
    text-align: center; 
 
} 
 

 
p { 
 
    color: white; 
 
    font-family: verdana; 
 
    font-size: 20px; 
 
}
<!DOCTYPE html> 
 
<html lang="en-US"> 
 
<head> 
 
\t <meta charset="utf-8"> 
 
\t <title>JavaScript Craps using arrays</title> 
 
\t 
 
</head> 
 
<body> 
 
<h1> Craps Lounge</h1> 
 

 
<div id="button"> 
 
<button onclick="rollDice()">Roll the Bones</button> 
 
</div> 
 

 
<p id="roll"></p> 
 

 
</body> 
 
</html>

+0

我成功实现了第一个答案。我发现你的陈述包含+1并返回相同的结果。因此是包含+1外来的? – liquidsolomon

+0

我相信它只是标志着工作的答案。人们可以采取多种途径解决问题。所以可以有多个正确答案。 –

+0

非常感谢! – liquidsolomon