Repository navigation
Releases
Releases · JJJACKsong/dsh-plugin-2048
v0.5.1 · 亮色主题棋盘与 UI 边界修复
亮色模式下棋盘格消失的问题修好了:棋盘和卡片边界不再被宿主的纯白底色吃掉。
- 棋盘与空格子改用固定暖色,亮色主题下整片棋盘格清晰可辨(暗色视觉不变)
- 亮色下统计卡、按钮、尺寸菜单、战绩抽屉补暖色描边与浅底,层级不再糊成一片
- 亮色强调色加深:最高分、状态按钮、标题渐变不再白底淡黄
- 结算遮罩改为固定暖黑纱,通关 / 终局卡片在亮色下也压得住棋盘
升级方式:remove_bundle → install_bundle,再刷新页面。
v0.5.0 · AUTO 托管(内置 AI)
老实手动玩 2048,很枯燥吧?
- AUTO 托管:工具栏点「AUTO」,内置 expectimax AI 接管当前局,你只负责看。4×4 搜 4 层、5×5 搜 3 层、6×6 及以上搜 2 层,节点预算封顶,每步耗时有界。
- 手动按方向键或滑动会立刻接管并退出 AUTO;通关弹窗自动继续,无路可走自动停。
- 托管局不计最高分与成就,保持手动成绩的含义;战绩里标
AUTO。 - 测试 41 → 47 项:
shiftGrid纯模拟、评分单调性、bestMove合法性、节点预算有界、AUTO 代打 200 步能做出 64+。
升级:
remove_bundle→install_bundle,再刷新页面。
v0.4.0 · 滑动动画重做 + 棋盘 4×4~9×9
手感:滑动不再「瞬移」
- 位移改成显式关键帧动画(不再依赖 CSS transition 插值):每颗棋子从旧格子按
--fx/--fy飞到--tx/--ty,连续两次同向滑动也会重播。 - 时长按距离给:1 格 140ms、2 格 170ms、3 格 200ms —— 滑得远飞得久。
- 动态模糊:飞行中段
filter: blur()到 1.35 ~ 2.25px,到站立刻清晰。 - 落地回弹:到位后越过落点 1.8 ~ 5px 再停稳,配合沿运动方向的拉伸 / 侧向挤压形变(squash & stretch)。
- 合并 pop、新子出现也换成带挤压的非线性节奏。
prefers-reduced-motion下全部关闭。
棋盘:4×4 ~ 9×9
- 4×4 / 5×5 常驻按钮,**6×6 ~ 9×9 收在「更多 ▾」**向上弹出的小菜单里;当前是大棋盘时按钮显示具体尺寸。
- 每个尺寸各留一局:切尺寸 = 停表 + 换槽,切回来棋盘、撤销历史、计时都接着上局;最高分、战绩、每日挑战全部按尺寸分开。
- 间距随尺寸收窄(10/10/9/8/7/6px),9×9 单格约 50px;16384 以上的数值补了深色配色和 6 位数字号,后期不会出现看不清的透明块。
- 「更多」按钮上,6~9 有未完成对局时会亮小圆点。
测试
40 项规则/成就(新增 4–9 尺寸、9×9 移动、间距、每尺寸 120 局随机对局不变量)+ 6 项外壳自检,全部通过。
升级:
remove_bundle→install_bundle,再刷新页面。旧存档会自动迁移,4/5 的进度不会丢。
v0.3.1 · 4×4 / 5×5 各自保留一局
修复:切 4×4 / 5×5 不再丢局
之前切尺寸等于开新局,这一版改成每个尺寸各留一局:
- 切过去再切回来,棋盘、分数、步数、撤销历史、计时全都接着上局。
- 停表机制:切走的局不计时(
elapsedMs累计),切回来才重新走秒。 - 工具栏上,另一尺寸有未完成对局时会亮一个小圆点,悬停提示「这个尺寸还有一局没下完」。
- 旧存档(0.3.0 及更早的单棋盘
board.v2/v1)读一次并升级进对应尺寸的槽,不会丢。 - 顺手修了音效:只在本局「刚结束 / 刚通关」那一下响,切槽或打开一局旧的结束棋局不再补放终局音。
仍有一个明确的边界:同一尺寸同一时间只有一局 —— 进出每日挑战(或点「新局」)会替换掉该尺寸的槽,被替换那局会先记进战绩。
测试:35 项规则/成就 + 6 项外壳自检,全部通过。
v0.3.0 · 连击 / 音效 / 5×5 / 每日挑战 / 成就战绩 + 会话提示
玩法变多了
- 连击:一手合并 ≥2 对时棋盘中央闪「连击 ×N」,另给本次合并得分 25%×(N-1) 的奖励分。
- 音效:WebAudio 现场合成(移动 / 合并 / 连击 / 通关 / 终局),默认开、一键静音、选择记忆,不引入任何音频文件。
- 4×4 / 5×5:随时可切,最高分与战绩按尺寸分开记。
- 每日挑战:按本地日期 + 尺寸做种子的固定发牌,同一天同一副牌;标题旁显示日期徽章,通关后标记「今日已完成」。
- 战报:结算或工具栏输出一段纯文本(分数 · 最大块 · 步数 · 用时 · 尺寸),可直接贴群里。
- 战绩:最近 10 局落在本地,换局前也会先记一笔。
- 成就:10 个本地解锁项(首块 128/512/1024/2048、单步三连击、零撤销到 2048、1 万/5 万分、5×5 到 2048、每日通关),解锁时右下角弹 toast。
会话联动:这局不用一直盯会话面板
游戏页顶部会出现一条不打断游戏的提示:
- 有会话 在等你批准 / 回答 → 「「XX」在等你批准 / 回答」
- 有会话 跑完了但你没在看 → 「「XX」跑完了」
点「去看看」直接跳到那个会话,也可以「关闭」。信号来自宿主注入的 useSessionStatus(pendingInteraction / completionUnread),插件只读不写:不碰会话日志、不订阅事件、不发 RPC。
内核与存档
- 棋盘尺寸参数化;mulberry32 随机状态随存档持久化 —— 关掉再开继续下,和一口气下完是同一盘棋(每日挑战靠它做到同一天同一副牌)。
- 存档升级到 v2,并兼容读取 0.2.x 的 v1(旧最高分并入 4×4)。
- 测试:规则/成就 31 项 + 外壳自检 6 项(模块加载、双槽位注册、中英文案对齐、清单字段)。
升级提示:
remove_bundle→install_bundle,再刷新页面。旧棋盘会被升级读取,不会丢。
v0.2.1
Publish to npm as dsh-plugin-2048.
- Install:
dsh plugin --profile <profile> add dsh-plugin-2048 - No code changes from 0.2.0; README install docs now lead with npm.
v0.2.0 · 结算小菜单(注意力惊人 / 注意力涣散)
新增:结算小菜单
- 合出 2048 → 棋盘上弹卡片小菜单,大字「注意力惊人!」,给出本局得分与步数,
按钮「继续玩」(接着往 4096 堆)与「开新局」。 - 走到无路 → 弹「注意力涣散!」宣告这局结束,附本局得分 / 步数 / 最高分,
按钮「再来一局」与「撤销」(把最后一手退回来接着救)。 - 同一手既凑到 2048 又走不动时先报喜,菜单按终局给按钮。
- 撤销回到尚未达成 2048 的状态后,再次达成会重新弹菜单。
- 只覆盖棋盘的卡片式进出场,不是全屏弹窗;文案中英双语。
v0.1.0 · 侧边栏 2048
首个公开版本。
- 侧边栏图标
sidebar.panellist+ 主区整页棋盘main(id/key 同为dsh-2048) - 方向键 / WASD / HJKL / 触屏滑动;撤销 30 步;通关与终局浮层
- 棋盘、分数、步数、最高分存
localStorage - 容器用
--dsw-alias-*主题变量,跟随亮/暗色;棋子为固定暖色美术 - Host 半空壳
apply():无 Service / Tool / 会话写入 - 规则内核 24 项单测(含 600 局随机对局不变量)