如何每次生成随机数

时间:2015-05-12 14:51:24

标签: javascript variables math random increment

有谁知道我如何生成一个新的随机数,以便我可以将它们存储到不同的变量中? (进入temp1和temp2)我希望程序每次为每个新变量重新运行“randomnumber”函数,这样我就可以将新的随机值存储到它们中。

<HTML>
<!Foundation Page for building our Javascript programs>
<HEAD>
<TITLE>The Foundation Page </TITLE>
<SCRIPT LANGUAGE = "JavaScript">
function main()
{
	totalscore()
	leaderboard()
}


function randomnumber()
{
	var randomnumber;
	randomnumber = Math.random()*3;
	return(Math.floor(randomnumber+0.2));
}
function totalscore() 
{
	var n;
	var p;
	var total;
	var temp1; 
	var temp2;
	var score; 

	
	score = 0;
	total=0
	
	for (n=0; n<10; n=n+1)
	{
		number = randomnumber();
		if (number == 0)
			{
				score =score+0;
			}
		else if (number == 2)
			{
				score =score+2;
			}
		else if (number == 3)
			{
				score =score+3;
			}
	total=total+score;
	}
temp1= total
temp2= total 
document.write(total)
document.write(total)

	
}

</SCRIPT>
<HEAD>
<BODY>
<BODY BGCOLOUR = "WHITE">
<H2>The Foundation Page </H2>
<HR>
<SCRIPT LANGUAGE = "Javascript"> main() </SCRIPT>
<INPUT NAME = "dobutton" TYPE = "button" value = "Start game" on Click = "game()"> 
<INPUT NAME = "dobutton" TYPE = "button" value = "Leaderboard" on Click = "leader()">
</BODY>
</HTML>

2 个答案:

答案 0 :(得分:0)

我想我知道你在问什么,我将在下面发布工作代码,并解释为什么你会得到相同的随机数。

  1. 你有一个for循环正在生成分数,并返回一个你要存储的总值。问题是你将这个数字分配给temp1和temp 2,所以它们现在是相同的数字,然后你将这两个数字写入页面。你需要做的是有2个不同的计算。以下代码将修复它并为您提供2个不同的数字...

    function totalscore() 
    {
        var total1 = 0;
        var total2 = 0;
    
        for (var n=0; n<10; n++)
        {
            total1 = total1 + randomnumber();
            total2 = total2 + randomnumber();
        }
        document.write(total1);
        document.write(total2);
    
    }
    
  2. 现在我对你的代码感到有些困惑,因为每次在for循环中重新计算时,得分都会自动复杂化。 (即如果前5个分数分别为1,2,2,1,3,那么总分将为24,而不是预期的9.如果这是故意的,则代之以放入此代码。

    function totalscore() 
    {
        var total1 = 0;
        var total2 = 0;
        var score1 = 0; 
        var score2 = 0; 
    
        for (var n=0; n<10; n++)
        {
            score1 = score1 + randomnumber();
            total1 = total1 + score1;
            score2 = score2 + randomnumber();
            total2 = total2 + score2;
        }
    
        document.write(total1);
        document.write(total2);
    }
    
  3. 祝你的项目和学习编码好运!

答案 1 :(得分:0)

我注意到的问题

  1. 大多数陈述背后没有分号
  2. 你在randomnumber + 0.2上返回Math.floor,这使得+ 0.2什么都不做。
  3. 你在点击按钮时调用onclick ='game()',但是没有游戏(),但也许是我们看不到的代码。
  4. 您正在设置temp1和temp2 = total,并且总共使用document.write两次
  5. 现在,问题是如何生成一个随机数。您正在这样做,尽管您可以简化它并使用Math.floor(Math.random()*3)return Math.floor(Math.random()*3)。当然,你现在可以换掉3并用你想要的任何帽子替换它。