怎么玩

方块从上面落下来,填满一整行就消掉。摞到顶就输了。

用键盘

用手指

横向拖
平移(拖一格宽走一格)
点一下
顺时针旋转
向下拖
软降(拖回去松开)
向下快扫
硬降

换模式、和 AI 打、联网对战、改键与手感都在右侧面板里(手机上点右上角 ☰)。

Stackwell

a falling-block puzzle game

挑一份 tests/golden/ 里的录像,或者把导出的 JSON 拖进来。空格播放 / 暂停, ←→ 一块一块地走。往回拖是从头重算的——core 是确定性的,所以第 N tick 永远是当初那一帧。

未连接

    空位会在 3 秒后由 AI 填上,真人进来时 AI 让位——所以一个人也能立刻开打。 服务器只做三件事:路由攻击、转发快照、排名次;棋盘由各自的浏览器算。

    对手棋盘上看不到正在下落的块:快照里只有已锁定的格子(协议里那张 「有损 / 可靠」的表——快照可以丢,攻击不能)。

    强度与风格是两个正交维度:换风格不改变强弱,只改变它怎么打。 井左侧那条竖条是待落的垃圾,深色还在延迟窗口里,亮色下次落块就会砸下来。

    AI 是 beam search:高档位除了手更快,也真的想得更深(新手 2 步,究极 6 步)。 权重是离线训出来的,所以它会攒 quad、会转 T-spin,不再只顾着立刻单消。 「Quad 依赖流」会把井摞起来再一次清四行,节奏比其他风格更一顿一顿。

    手感设置

    玩家对这些参数极度敏感(ARR 差一帧就能察觉)。改动会立刻生效并存进 localStorage。

    触屏

    平移是位移式的(拖一格宽走一格),所以 DAS / ARR 对触屏不起作用—— 手指本来就带着位移信息,再套一层计时器只会更慢。

    音效

    全是合成出来的,一个素材文件都没有——音色进 config/audio/,加一套 = 加一个 JSON。 浏览器不许在你动手之前出声,所以第一次按键或点屏幕才会真正开起来。

    画面动效

    消行的塌落、挨垃圾时的上推与震屏、结算徽章的弹出。关掉之后消行仍然会亮一下, 只是画面不再整体移动——默认跟随系统的「减少动效」设置。时长与幅度进 config/animation/,加一套 = 加一个 JSON。

    按键设置

    换一套方案,或者自己改:点「+」再按下想要的键(Esc 取消),点已有的键把它去掉。 一个动作最多绑 4 个键;按下的键要是已经绑给了别的动作,会从那边挪过来—— 同一个键不许属于两个动作。改动立刻生效并存进 localStorage。

    开发者

    录制当前这局的操作,导出成 tests/golden/ 用的黄金文件。

    内测反馈

    每打完一局,浏览器里会留一条这局的数据(名次、攻击、消行构成——不含任何 个人信息)。玩过几局之后点下面这个按钮导出一份 JSON 发回来,就是这次内测 最有用的东西。本地只留最近 200 局。

    把数据和意见发到这里 →

    操作

    横向拖
    平移(拖一格宽走一格)
    点一下
    顺时针旋转
    向下拖
    软降(拖回去松开)
    向下快扫
    硬降
    底部按钮
    逆时针 / Hold / 硬降 / 顺时针