完整版俄罗斯方块:7 种方块、旋转、消行计分、等级加速、下一个预览,
单文件零依赖,下载即玩。
操作
- ← → 左右移动,↑ / X 顺时针旋转
- ↓ 软降,空格直落,P 暂停
旋转怎么做的
方块用矩阵表示,旋转就是转置 + 反转每一行:
function rotate(m) {
return m[0].map((_, i) => m.map(r => r[i]).reverse());
}
两个手感细节
1. 旋转踢墙:贴着右墙旋转会转不动,所以撞了就尝试左右各挪一格,
实在不行才放弃旋转。没有这一步,靠墙的方块基本没法玩。
2. 消行后索引要补回来:从下往上扫,删掉满行后在顶部补空行,
此时要把循环变量 y++,否则会漏掉紧邻的下一行。
arena.splice(y, 1);
arena.unshift(Array(COLS).fill(0));
cleared++;
y++; // 删了一行,索引补回来
计分
消 1/2/3/4 行分别是 100/300/500/800 分,再乘以当前等级,
每消 10 行升一级、下落速度加快。
授权:本站原创,按 MIT 风格授权——可以随便下载、修改、商用、二次分发,
不用署名,也不担保任何风险。源码里有完整中文注释,改起来不费劲。
楼主 · 2026-09-28 15:34 · 浏览 2

