已采纳回答 / l1uyub0b0b0
以moveLeft为例,这不是一个简单的i,k顺次+1的双重循环,j也在变换。(i,j)的变化控制选择可能需要移动的位置,(i,k)的变化控制可能移动到的位置。
i,j,k的数值变化不超过4,如果愿意可以用纸笔模拟一下整个程序,或者在firebug下作一些断点研究一下。
2014-07-22
最赞回答 / l1uyub0b0b0
不一定优先级高,是执行顺序的问题。这个demo里js是使用document.ready,也就是在页面加载完以后才执行的。页面加载也包括了css的加载,所以之后使用js修改css属性会覆盖本身设定的css。
使用js设定这些属性是因为在程序中这些属性要动态改变。也可以使用css布置初始属性,但是为了统一,也为了方便,我统一使用js设置这些属性。
2014-07-19
已采纳回答 / l1uyub0b0b0
hasConflicted[i][k]的值每回合初始化为false,在不冲突的情况下,!hasConflicted[i][k]为true。但是若在move中检查到了冲突,hasConflicted[i][k]设为true,!hasConflicted[i][k]则为false
2014-07-18
已采纳回答 / l1uyub0b0b0
showNumberWithAnimation负责产生随机数时动画的产生,其中的numberCell.text先附上值,配合之后的动画效果。
updateBoardView在任何动作以后都要调用,包括初始化,移动和产生随机数,所以对于一般情况,对numberCell的text元素赋值。在这点上虽然和showNumberWithAnimation重复了,但是保证了一般状况下的正确性。
2014-07-18