【问题标题】:How do I properly use a "for loop" to roll one die (or multiple) within a function of another die roll?如何正确使用“for循环”在另一个骰子滚动的函数中滚动一个(或多个)骰子?
【发布时间】:2013-11-11 10:55:34
【问题描述】:

我是一名学生,刚接触计算机编程,我有一个关于我正在从事的项目以及我应该如何使其工作的问题。

这就是要求:不要在页面上最初显示两个骰子,而是从一个骰子图像开始,然后在函数的 for 循环中构建第二个图像标签。删除第一个代码块(滚动第一个骰子),而是将第二个骰子(构建 img 标签的代码)的代码放入一个运行两次的“for”循环中。

<script type="text/javascript">
        //double dice script
        function SelectImage2() {
            roll2 = Math.floor(Math.random() * 6) + 1;
            imgName2 = '../images/die' + roll2 + '.gif';
            document.getElementById('dieImg2').src = imgName2;

            roll3 = Math.floor(Math.random() * 6) + 1;
            imgName3 = '../images/die' + roll3 + '.gif';
            document.getElementById('dieImg3').src = imgName3;


        }

    </script>

<div style="text-align:center">
        <p>
            <img id="dieImg2" alt="die image"
            src="../images/die2.gif" >

            <img id="dieImg3" alt="die image"
            src="../images/die3.gif" >
        </p>
        <input type="button" value="Roll until doubles" onclick="SelectImage2();">

    </div>

基本上,我想我只是在找人来解释 for 循环函数以及我应该如何在另一卷中调用一个卷?任何建议将不胜感激!谢谢!

【问题讨论】:

  • 听起来你需要做一些研究作为你家庭作业的一部分。考虑从 w3schools.com/js/js_loop_for.asp 之类的东西开始
  • 我还建议 OP 和任何考虑回答这个问题的人阅读 SO 关于提出家庭作业问题的政策 - meta.stackexchange.com/questions/10811/…
  • 您应该查看developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 以了解 Javascript 中 for 循环的说明。当您编写解决方案时,请考虑在示例代码中您(几乎)重复了两次相同的代码 - 将此作为循环结构的指南。
  • 你知道如何声明函数吗?
  • 找出你的代码中的共同因素——什么是相同的?使用它以及重复两次的更改。寻找不需要不同的地方,并使用它来创建 for 循环的基础。

标签: javascript for-loop


【解决方案1】:

使用类似的东西

function SelectImage2() {
    for (var i = 2; i <= 3; ++i) {
        var roll = Math.floor(Math.random() * 6) + 1,
            imgName = '../images/die' + roll + '.gif';
        document.getElementById('dieImg' + i).src = imgName;
    }
}

或者,如果你想要紧凑的代码,

function SelectImage2() {
    for (var i = 2; i <= 3; ++i) {
        document.getElementById('dieImg' + i).src
           = '../images/die' + ( 1 + Math.random() * 6 | 0 ) + '.gif';
    }
}

备注

  • 始终使用var 声明变量!
  • number|0 是一种简单快速的向 0 舍入的方法

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2014-03-16
    • 2021-06-25
    • 1970-01-01
    • 2023-03-28
    • 2016-08-10
    相关资源
    最近更新 更多