Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript骰子掷多个数字_Javascript_Dice - Fatal编程技术网

Javascript骰子掷多个数字

Javascript骰子掷多个数字,javascript,dice,Javascript,Dice,我试图创建一个掷骰子,一个在他定为一之前指示多个数字的骰子。我尝试了一种非常简单的方法,但没有成功:以下是我的代码: <script> //preload the six images first var face0=new Image() face0.src="http://www.unisg.bplaced.net/dices/d1.gif" var face1=new Image() face1.src="http://www.unisg.bplaced.net/dices

我试图创建一个掷骰子,一个在他定为一之前指示多个数字的骰子。我尝试了一种非常简单的方法,但没有成功:以下是我的代码:

<script>


//preload the six images first
var face0=new Image()
face0.src="http://www.unisg.bplaced.net/dices/d1.gif"
var face1=new Image()
face1.src="http://www.unisg.bplaced.net/dices/d2.gif"
var face2=new Image()
face2.src="http://www.unisg.bplaced.net/dices/d3.gif"
var face3=new Image()
face3.src="http://www.unisg.bplaced.net/dices/d4.gif"
var face4=new Image()
face4.src="http://www.unisg.bplaced.net/dices/d5.gif"
var face5=new Image()
face5.src="http://www.unisg.bplaced.net/dices/d6.gif"

function delay(time) {
  var d1 = new Date();
  var d2 = new Date();
  while (d2.valueOf() < d1.valueOf() + time) {
    d2 = new Date();
  }
}
</script>


<img src="http://www.unisg.bplaced.net/dices/d1.gif" name="mydice">
<form><br><br>
<input type="button" value="Throw dice!" onClick="throwdice(); throwdices();">
</form>

<script type="text/javascript">
function DoAllThese() {
throwdice(); 
throwdices();
}

function throwdice(){
delay(500); 
document.images["mydice"].src=eval("face"+5+".src"); 
delay(500); 
throwdices(); 
}

function throwdices(){
var randomdices=Math.round(Math.random()*4.5); 
delay(1000); 
document.images["mydice"].src=eval("face"+randomdices+".src"); 
}
</script>

//先预加载六个图像
var face0=新图像()
face0.src=”http://www.unisg.bplaced.net/dices/d1.gif"
var face1=新图像()
face1.src=”http://www.unisg.bplaced.net/dices/d2.gif"
var face2=新图像()
面2.src=”http://www.unisg.bplaced.net/dices/d3.gif"
var face3=新图像()
面3.src=”http://www.unisg.bplaced.net/dices/d4.gif"
var face4=新图像()
face4.src=”http://www.unisg.bplaced.net/dices/d5.gif"
var face5=新图像()
面5.src=”http://www.unisg.bplaced.net/dices/d6.gif"
功能延迟(时间){
var d1=新日期();
var d2=新日期();
而(d2.valueOf()
函数doAllThis(){ 杂碎(); throwdices(); } 函数throwdice(){ 延迟(500); document.images[“mydice”].src=eval(“face”+5+“.src”); 延迟(500); throwdices(); } 函数throwdices(){ var randomdices=Math.round(Math.random()*4.5); 延迟(1000); document.images[“mydice”].src=eval(“face”+randomdices+“.src”); }

我不知道如何对数字进行排序,使其看起来像是骰子在进入解决方案之前旋转一样。

使用
setInterval

function throwdices() {
    var spins = 10;
    var curSpin = 0;
    var spinInterval = setInterval(function() {
        curSpin++;
        if (curSpin < spins) {
            var randomdices=Math.round(Math.random()*4.5);
            document.images["mydice"].src=eval("face"+randomdices+".src");
        } else {
            clearInterval(spinInterval);
            throwdice();
        }
    }, 500);
}
函数throwdices(){
var自旋=10;
var-curSpin=0;
var spinInterval=setInterval(函数(){
curSpin++;
如果(光标<旋转){
var randomdices=Math.round(Math.random()*4.5);
document.images[“mydice”].src=eval(“face”+randomdices+“.src”);
}否则{
净间隔(自旋间隔);
杂碎();
}
}, 500);
}

P.S.不要命名变量
face0
-
face5
。这是个坏主意!使用数组<代码>变量面=[];面。推(面0)。这将允许您执行
面[随机骰子].src
。不再使用
eval()
!:-)您也不需要所有这些图像,只要创建一个URL数组,并在需要显示时将其分配给
.src
。是否有方法确定第n个滚动?比如:只有第五卷是6?(我需要一个科学实验的代码,并希望保持转鼓的数量不变。使用6,参与者通过这一关。创建一个全局
计数器
变量,并在
throwdice()中递增它)
。你在那里使用的
eval
是不是只是在玩游戏?我只是在复制OP的代码。我已经对建议更改为数组的评论投了赞成票。我不想在我的答案中做所有这些更改,以使其针对所问的问题。效果很好,只是另一个小问题(在不更改初始解决方案的情况下:如何构建警报(例如,警报(“太好了,您通过了此阶段”))而不一直弹出?我将其插入else表达式中,但它一直弹出?