我想用js开发个类似于曹操传的游戏。战棋类的。每个人物有一定的移动力,每次移动的格子不能超过移动力范围,比方说移动力是4,那么他就能上下左右最多移动4个格子。我能做到这一步,点击人物就会用矩形格显示出可以移动的范围。因为要考虑地形,每一个地图格子消耗的移动力不一样。比方说每一个格式都消耗2个移动力,那么他只能上下左右移动2个格子,再这里我试了N中方法,一运行 浏览器就死了。也没调试出哪里的错误。郁闷啊郁闷。其实算法不难。谁给个现成的算法啊

解决方案 »

  1.   

    的确出现死循环了。我无语了。一个双重循环,调用一个函数,变量的值就都乱了。难道一个函数的局部变量还能影响他的父循环的值吗?表达不清楚,贴出代码for(j = redressY(y - area); j <= redressY(y + area); j++) { 
    for(i = redressX(x - (area - Math.abs(y - j))); i <= redressX(x + (area - Math.abs(y - j))); i++) {
    this.moveList[j][i] =  this.CheckMove(i,j,role);//我把this.CheckMove函数里面的变量尽量的设成和本循环没有一样的。就没事了。 }
    }
      

  2.   

    this.CheckMove 这个函数里面也用到了i ,j 局部变量。我没var i,var j 。就直接 for(i = 0;) 这样子难道不行吗
      

  3.   

    是这样的 如果你没有var的话
    可能会是global变量了~~