请解答:求讨论,这两个for 循环有什么区别么?如何通过调试查看for循环消耗时间

来源:3-4 交互逻辑调试

哟_笨小孩

2015-02-19 16:00

 这是向右移动的 逻辑判断

第一个是老师的,第二个是我自己写的,(除此之外,代码都一样)运行结果虽然没问题,但是动画效果上有不同,比如:由 00 移动到03时 会卡顿一下,且新出现的2或者4会在动画完成之前开始出现

个人猜想: setTimeout("updateBoardView()",200);

    1.这两个循环时间消耗不同,后者比前者慢

    2. 前者先遍历 同行最远的格子,后者先遍历最近的格子,所以说在遍历到最远格子的时候有时间损耗,

for( var i = 0 ; i < 4 ; i ++ )

        for( var j = 2 ; j >= 0 ; j -- )

            if( board[i][j] != 0 )

                for( var k = 3 ; k > j ; k -- ){ 赋值操作}

for( var i = 0 ; i < 4 ; i ++ )

        for ( var j = 0 ; j < 3 ; j ++ )

            if( board[i][j] != 0 )

                for( var k = j + 1 ; k < 4 ; k ++ ) { 赋值操作}

谢谢!

写回答 关注

1回答

  • 慕函数6472736
    2015-12-06 13:16:08
    for( var i=1; i<4; i++)
      for( var j=0; j<4; j++)
        document.write(i+":"+j+"<br/>");
        
    for( var j=0; j<4; j++)
      for( var i=1; i<4; i++)
        document.write(i+":"+j+"<br/>");

    同样的问题,求解? 虽然这两个循坏得到的结果是一样(顺序不一样),但确严重影响运行结果。

    慕函数647...

    后来核对了一下代码,发现for循坏没有问题(只要逻辑对就行,没有特定规则),出现问题的关键是noBlcokCheckLR(i,k,j,board)这里的参数传入顺序、showMoveAnimation(i,j,i,k)这个参数顺序会影响实现效果。

    2015-12-08 15:04:53

    共 1 条回复 >

慕课网2048私人订制

慕课网这款“2048私人订制”通过大神老的讲解学习到游戏结构的开发

70003 学习 · 588 问题

查看课程

相似问题