【问题标题】:Math.random reoccurring数学随机重复
【发布时间】:2013-01-10 17:58:15
【问题描述】:

我正在创建一个基本的修改后的 Crapps 游戏。我正在使用 java 脚本和 HTML。所以它看起来不太好,但它的目的是教我 Java Script。

我仍处于起步阶段,遇到了障碍。应该发生的是当我单击一个按钮时,此功能会发生。我的功能发生了,但它继续滚动 2 个 6,因此骰子显示为 6。

一切正常,除了 6 不断重复出现

我检查了代码,但找不到常见的错误——确保它应该生成的数字被覆盖,我的基础被覆盖 6 个数字 (1-5) 都有工作,我的名字是正确的,等等。我知道我的函数正在被调用,因为每次我想要它去的地方,骰子的图像都会显示为 6。

 function rolldice()
   {
     dice1=Math.floor(Math.random()*6+0);
        if(dice1=0)
            {
             document.getElementById("dice1").innerHTML="<img src='1.jpg' width='100' height='100' />";
            }
        if(dice1=1)
            {
              document.getElementById("dice1").innerHTML="<img src='2.jpg' width='100' height='100' />";

            }
        if(dice1=2)
            {
              document.getElementById("dice1").innerHTML="<img src='3.jpg' width='100' height='100' />";

            }
        if(dice1=3)
            {
              document.getElementById("dice1").innerHTML="<img src='4.jpg' width='100' height='100' />";

            }
        if(dice1=4)
            {
              document.getElementById("dice1").innerHTML="<img src='5.jpg' width='100' height='100' />";

            }
        if(dice1=5)
            {
             document.getElementById("dice1").innerHTML="<img src='6.jpg' width='100' height='100' />";

            }
dice2=Math.floor(Math.random()*6+0);
    if(dice2=0)
            {
             document.getElementById("dice2").innerHTML="<img src='1.jpg' width='100' height='100' />";
            }
        if(dice2=1)
            {
              document.getElementById("dice2").innerHTML="<img src='2.jpg' width='100' height='100' />";

            }
        if(dice2=2)
            {
              document.getElementById("dice2").innerHTML="<img src='3.jpg' width='100' height='100' />";

            }
        if(dice2=3)
            {
              document.getElementById("dice2").innerHTML="<img src='4.jpg' width='100' height='100' />";

            }
        if(dice2=4)
            {
              document.getElementById("dice2").innerHTML="<img src='5.jpg' width='100' height='100' />";

            }
        if(dice2=5)
            {
             document.getElementById("dice2").innerHTML="<img src='6.jpg' width='100' height='100' />";

            }
 }

【问题讨论】:

  • 使用 java.util.Random.next() 获取 int 值,并使用模数 (%) 获取您的数字 0-5。
  • 并使用 switch 语句代替 if 阶梯。
  • @HotLicks 这是一个javascript问题
  • @ben336 - 啊,就是这样。没关系。
  • (如果是 Java,Logan 指出的错误是不可能的。)

标签: javascript html int innerhtml


【解决方案1】:

您使用的是= 而不是==。这意味着它将运行 1-5 中的每个语句。

if (dice1 = 5){

相同
dice1 = 5;
if (dice1){

这将永远是正确的。

当您分配随机值时,您还应该在每个变量之前添加var,仅供参考。

我会考虑将所有这些代码缩短为这样的:

function rolldice(){
  for (var i = 0; i < 2; i++){
    var roll = Math.floor(Math.random() * 6);
    document.getElementById('dice' + (i + 1)).innerHTML = 
      "<img src='" + (roll + 1) + ".jpg' width='100' height='100' />"
  }
}

【讨论】:

  • 就是这样!知道我忽略了一些东西。感谢您的快速回复!
  • @Patrick 没问题!请尽可能接受答案:)
猜你喜欢
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 2020-10-15
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多