# ===== CodeLab: JavaScript 小游戏⑥:2048 网页版 ===== # 来源: https://aoerliang.dpdns.org/articles/game-js-2048 # 以下代码片段按文章出现顺序拼接, 共 3 段 # ----- 片段 1 (html) ----- 2048

2048

# ----- 片段 2 (javascript) ----- function slide(line) { let a = line.filter(v => v !== 0), b = []; for (let i = 0; i < a.length; i++) { if (i + 1 < a.length && a[i] === a[i + 1]) { b.push(a[i] * 2); score += a[i] * 2; i++; } else b.push(a[i]); } while (b.length < 4) b.push(0); return b; } function moveGrid(dir) { // 0左 1右 2上 3下 for (let i = 0; i < 4; i++) { let line = dir < 2 ? grid[i].slice() : grid.map(r => r[i]); if (dir === 1 || dir === 3) line.reverse(); line = slide(line); if (dir === 1 || dir === 3) line.reverse(); for (let j = 0; j < 4; j++) { if (dir < 2) grid[i][j] = line[j]; else grid[j][i] = line[j]; } } spawn(); render(); } # ----- 片段 3 (html) ----- 2048

2048 方向键移动