【问题标题】:Outputting the same generated number value输出相同的生成数值
【发布时间】:2015-05-11 10:48:11
【问题描述】:

你们中的任何人都知道如何在我输出随机数生成器时保持它的值相同吗?我目前正在创建一个排行榜,它允许用户输入他们的名字,输入有多少玩家正在玩,并让一个随机数生成器生成 10 个值并将它们加在一起形成一个总分。到目前为止,我已经生成了总分,我打算输出“欢迎(玩家姓名)你的总分是(总分值)”,然后重复这个过程,直到输出所有玩家的名字。之后,我打算使用数组和数组排序来显示玩家的分数从高到低。但问题是我不知道如何保持“总分”值与我显示给输出玩家姓名和分数以及“排行榜”的值相同,因为随机数生成器将继续生成新的数值。一些帮助将不胜感激。谢谢你。这是我到目前为止所做的事情

< HTML >
  < !Foundation Page
for building our Javascript programs >
  < HEAD >
  < TITLE > The Foundation Page < /TITLE>
<SCRIPT LANGUAGE = "JavaScript">

function main()
{
	start()
	randomnumber()
	totalscore()
	leaderboard()
}
function start()
{
	var ask
	var name1
	var name2
	var name3
	var name4
	var name5
	
	
	ask=prompt ("How many people are playing")
	if (ask==3)
		{
		name1=prompt("What is the first player's name?")
		name2=prompt("What is the second player's name?")
		name3=prompt("What is the third player's name?")
		}
	if (ask==4)
		{
		name1=prompt("What is the first player's name?")
		name2=prompt("What is the second player's name?")
		name3=prompt("What is the third player's name?")
		name4=prompt("What is the forth player's name?")
		}
	if (ask==5)
		{
		name1=prompt("What is the first player's name?")
		name2=prompt("What is the second player's name?")
		name3=prompt("What is the third player's name?")
		name4=prompt("What is the forth player's name?")
		name5=prompt("What is the fifth player's name?")
		}		
}

function randomnumber()
{
	var randomnumber;
	randomnumber = Math.random()*3;
	return(Math.floor(randomnumber+0.5));
}
function totalscore() 
{
	var n;
	var score = 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;
			}
	}
	document.write (score)
}
function leaderboard ()
{
	var leaderboardarray = new array (5);

		leaderboardarray[0] = number;
		leaderboardarray[1] = number;
		leaderboardarray[2] = number;
		leaderboardarray[3] = number;
		leaderboardarray[4] = number;
	


}
</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 >

【问题讨论】:

    标签: arrays sorting generator


    【解决方案1】:

    不太清楚这里问的是什么,但只是要说明几点:

    • 你的名字变量可以被做成一个名字数组,其大小由 ask 指定。即代替 names1-5 你可以做

      var names[ask]
      

      因此它创建了一个名称数组,其中大小是指定的玩家数量。然后提示输入名称,您可能会有类似的东西

      for(var i = 1; i < ask; i++) {
         names[i] = prompt("Name of Player " + i);
      }
      
    • 在 totalScore 中,您的 if else 检查数字是没有意义的,因为您总是要添加数字来得分,而且它总是在 0 到 3 之间,所以不要检查要添加的值,只需添加它:

      number = randomNumber();
      score += number;
      
    • 您的格式通常很差,您应该使用小写的标签并且没有空格,即

      < HTML > 
      

      应该是

      <html> 
      

      所有标签都类似

    • 注意:以上是我认为您应该在未来工作中采纳的提示!

    • 如果您能阐明您想用上面的代码做什么,那就太好了,我很乐意为您提供帮助!

    【讨论】:

    • 对不起,我很不擅长解释事情。我试图做的是两次输出相同的“分数”随机数生成值。这样做的原因是因为我想输出一个排行榜,显示从最高分到最低分的分数,我还想输出相同的分数值(排行榜上的相同值),分数旁边有玩家的名字以允许用户在排行榜上查看他们的分数。我希望这对你来说更容易理解
    猜你喜欢
    • 1970-01-01
    • 2020-07-09
    • 2016-06-09
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 2012-09-23
    • 2021-03-01
    • 1970-01-01
    相关资源
    最近更新 更多