三消算法
-
每一个数字代表一个元素,先生成元素阵列
var game = new DigitalGame(5,5,[0.35,0.65, 0.85, 0.95, 1])
[3, 2, 3, 4, 4]
[3, 2, 4, 3, 3]
[5, 4, 2, 5, 4]
[1, 2, 3, 2, 2]
[3, 1, 1, 3, 1] -
将第五行第一列元素置成1,以符合消除的规则
game.numMap[4][0]=1
[3, 2, 3, 4, 4]
[3, 2, 4, 3, 3]
[5, 4, 2, 5, 4]
[1, 2, 3, 2, 2]
[1, 1, 1, 3, 1] -
执行消除检测,返回结果
game.check()
{ actions: [ [2, 0, 3, 0], [1, 0, 2, 0], [0, 0, 1, 0], [-1, 0, 0, 0, 1], [3, 1, 4, 1], [2, 1, 3, 1], [1, 1, 2, 1], [0, 1, 1, 1], [-1, 1, 0, 1, 2], [3, 2, 4, 2], [2, 2, 3, 2], [1, 2, 2, 2], [0, 2, 1, 2], [-1, 2, 0, 2, 2] ], bClear: true, clears: [[3, 0, 1], [4, 0, 1], [4, 1, 1], [4, 2, 1]], map: [ [1, 2, 2, 4, 4], [3, 2, 3, 3, 3], [3, 2, 4, 5, 4], [5, 4, 2, 2, 2], [2, 2, 3, 3, 1]] mergePoints: [[4, 0, 1, 2]] }
字段 含义 actions 动作列表,[2, 0, 3, 0]表示从第三行第一列移动到第四行第一列 bClear 是否消除了元素 clears 消除元素列表,[3, 0, 1]表示消除第四行第一列元素,元素值是1 map 最终的元素阵列 mergePoints 合并元素的位置,[4, 0, 1, 2]表示消除合并在第五行第一列,值由1变成2。如果消除了不用合并,没有这个字段。
-
用0表示障碍物元素
-
斜落算法
-
生成指定的元素