 joywayerandClaude Opus 5
|
2b1dd0d947
|
二七王:修复出牌操作条/亮牌历史布局越界,补主牌统计条改名遗漏
- I1:Layers.js 群组 206 改名遗漏一处注释(亮牌信息条 → 主牌统计条),全仓复查确认无第二处
- I2:出牌操作条补「提示」项后 anchor:center 导致已有两项挤偏,改用 anchor:left 并反推
anchorX=446,令「出牌」按钮回到参考图实测 x≈556(求解器验证:446/556/748)
- I3:HIST_FAN/MING_FAN 的 maxWidth 反推算错(旧注释「488」有误,实际总宽恒等于
maxWidth=500),导致 RIGHT 座位整排超出画布 5px;收窄为 490 使三座位求解结果落在
0-1280 内,订正注释与清单 §6.9c 对应文字
- M3:同步修正计划文档里遗留的旧名「亮牌信息条/亮牌条」
- M6:test_constants.js 补 items[].key 的三命名空间解析守卫(此前完全无守卫)
- M5/M7:订正 ACC_ROW_TEXT_GRID 与扣底按钮宽度的估值依据说明
- M1/M2:清单 §6.9 子节重新排序为 6.9a→6.9b→6.9c 并统一标题层级,修正脚注星号误渲染
client/tests/run.js 与 server/games/erqiwang/test/run.js 均全绿,精灵总数(380)/
布局节点数(83) 两个钉死断言未变。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-27 09:06:01 +08:00 |
|
 joywayerandClaude Opus 5
|
0c58ae67db
|
二七王:倒计时与结算得分改用数字图精灵,收尾几处命名与文档订正
- CD_LEFT/CD_RIGHT/CD_SELF(1150-1152)由文字精灵改为多帧图数字精灵:
资源 NUM_COUNTDOWN,纯秒数无后缀;对应布局节点 P_COUNTDOWN 的 h 改取
NUM_STYLE.COUNTDOWN.charHeight,w 留到运行时注入。
- 结算得分 RESULT_SCORE_LEFT/RIGHT/SELF(1805-1807)同理由文字精灵改为
数字图精灵(NUM_RESULT_WIN/NUM_RESULT_LOSE),与大局结算已有的
ACC_TPL_SCORE_NUM 保持一致;布局节点随之调整,移除不再使用的
TEXT_STYLE.SCORE_BIG。
- NUM_CALL_SCORE 第16帧由"待美术与规则确认"改为明确的"无后缀"(叫分档位
面板只显示纯数字,"N子"角标是独立文字精灵);NUM_MAIN_SUIT_COUNT /
NUM_RESULT_WIN / NUM_RESULT_LOSE 第16帧仍待确认,不改。
- Layout_Action.js 的 CALL_BTN_SCORE_TEXT、Layout_Result.js 的
RESULT_SCORE_TEXT 改名为 CALL_BTN_SCORE_NUM / RESULT_SCORE_NUM:
两者驱动的都是数字图精灵,_TEXT 后缀误导;同步测试引用。
- docs/client/development-guide/02:订正"SpriteManager 第1154行"这一失效
行号引用(回退后该行号落在 setTextWithWidth 体内),改为不写死行号。
- docs_dev 清单同步:§2.4/§5.4/§5.6/§6.6/§6.9 倒计时与结算得分的精灵类型
描述、§6.6/§6.9 对应布局参数。
- test_constants.js 的 NUM_STYLE 同源守卫表新增 COUNTDOWN、RESULT_WIN、
RESULT_LOSE 三对(连同改名后的 CALL_BTN_SCORE_NUM),共 6 条新断言。
精灵总数、布局节点总数均未变(378 / 61),只改类型与命名,不增删。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-27 00:54:42 +08:00 |
|
 joywayerandClaude Opus 5
|
35ee85e1d6
|
二七王:回退自造的图集叠绘,改用平台既有 SpriteManager.setNumberImage
方案作废并纠正认知:多帧图片精灵【不是】只能显示一位数——SpriteManager 第 1154 行
早有 setNumberImage(spriteId, text, charWidth):把整串文本设给一个多帧图片精灵,
引擎按字符逐帧渲染,精灵宽度按「字符数 × charWidth」自动调整。bc75e40 造的
drawImageRegion + NumberRenderer 是重复轮子,本次整体回退(revert bc75e40)。
- 回退:删除 gameabc-framework/ui/NumberRenderer.js 与其单测,SpriteManager 与
index.html 恢复到改动前(与 bc75e40^ 逐字节一致)。
- ImageResources.js:数字类资源改为 16 帧、固定帧序 0123456789.+-x/p,逐条写明
各帧含义、第16帧后缀(选主张数=「张」;结算/叫分的后缀标注待美术与规则确认,未瞎填)、
单字符宽高与整图尺寸(16 × 单字宽),并说明帧序不可重排、不可省略占位。
- LayoutConstants.js:NUM_STYLE 改为 setNumberImage 所需的 res/charWidth/charHeight/suffix。
- Layout_Action.js:两个数字节点 h 取 charHeight(SSOT),w 留运行时注入
(宽度由 setNumberImage 按字符数自动改,随位数变)。
- Sprites_Action.js / Sprites_Result.js:注释改为 setNumberImage 用法;
结算玩家栏 ACC_TPL_SCORE_NUM 是复制精灵也能用(该接口不依赖绘制回调)。
- test_constants.js:NUM_STYLE 守卫改为校验 charWidth/charHeight/suffix 与
「h 同源、w 运行时注入」;suffix 限定为 setNumberImage 支持的 分/倍/张。
- 文档:清单 §1.3/§1.5/§3.6/§5.4/§6.8 与前端 02 的那一节全部按 setNumberImage 重写,
三种机制改为「文字精灵 / setFrame 切帧 / setNumberImage」,并记下这次误判作为反例。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-27 00:07:35 +08:00 |
|
 joywayerandClaude Opus 5
|
dbdd6607d7
|
二七王:文档同步图集叠绘数字(清单 §1.3/§1.5/§3.6/§5.4/§6.8 + 前端 02 新增一节)
- docs_dev 清单:§3.6 数字资源改为「等宽连续排列的一张图」并给出字符顺序/单字宽高/整图尺寸,
§1.3 说明叫分档位分数为何必须改叠绘(14 档里 13 档两位数、每档一个精灵),
§1.5/§5.4 选主张数由 8 个精灵改回 4 个(1678–1681 记跳号不复用),
§6.8 布局节点合并 + 新增 NUM_STYLE 数字样式表;各处均带 2026-08-26 修订说明与缘由。
- 前端 02:新增「三种显示机制:文字精灵 / 多帧图片精灵 / 图集叠绘」一节,
给出三问选用判据、多位数误用 setFrame 的坑与真实事故、叠绘的三条前提与出图规格;
§5 补一条「转发必须接上且参数对齐,否则事件静默失效」的警示;DO/DON'T 各补一行。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 23:56:32 +08:00 |
|
 joywayerandClaude Opus 5
|
949702dc90
|
二七王:Task 13 守卫加入「求解冒烟」
拿真实布局配置逐节点实际调用求解器,断言不抛错且坐标非 NaN。
字段名写错、缺 w/h、kind 不认识、bySeat 缺座位都会当场炸出来,
而不是等到界面上静默摆歪——这是配置与求解器之间契约的最强守卫。
attach.target 的解析范围同时改为三者并集(子游戏精灵 / 布局节点名 / 平台精灵)。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 21:32:48 +08:00 |
|
 joywayerandClaude Opus 5
|
69cb04ecfa
|
二七王:确立「一个 View 恰好一个图层」不变式
原本允许 Layer1/Layer2 声明多图层,但「哪个 group 属于哪个图层」只能靠
注释隐含、无法机械判定。改为跨图层的界面拆成两个 View,各带自己的 Layer——
一个 View 将来对应一个 BaseComponent 组件,本就该分开。
SpriteIndex 加校验守住该不变式:View 缺 Layer、或写成 Layer1/Layer2 均报错。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 21:01:04 +08:00 |
|
 joywayerandClaude Opus 5
|
8b579896b2
|
二七王:精灵常量再优化为 View → group 容器 → 精灵
group 与其名下精灵合并为 { id: 群组常量, 精灵键: id, ... },
所属关系由结构表达而非注释;拿到 group 对象即可 showGroup 并遍历其精灵。
SpriteIndex 随之支持 groupIdOf:精灵与群组 ID 被结构绑定,
显隐走群组时可机械查出。校验增至 5 处显式失败(重复键、精灵值非数字、
View 下混入标量键、group 缺 id、查不到的键)。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 20:51:18 +08:00 |
|
 joywayerandClaude Opus 5
|
5ac445d08d
|
二七王:精灵常量改为以 UI View 为组织单位
Layer/Group 扁平声明在 View 定义下,精灵只写 id、所属关系写在注释里;
一个 View 对应一个 UI 组件,拿到 View 即拿到它的全部精灵与图层群组。
SpriteIndex 的展平逻辑随之调整:保留键 Layer*/Group* 跳过,其余键即精灵;
新增「值非数字即报错」——两者结构上同级、只靠键名区分,写错前缀会静默变成假精灵。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 20:44:17 +08:00 |
|
 joywayerandClaude Opus 5
|
3b9828c8ca
|
二七王:修正文档里服务端测试脚本数量
实际是 17 个 test_*.js(624 checks),原文写的 20 把 _assert/_rpc/_shim 也数进去了。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 19:52:31 +08:00 |
|
 joywayerandClaude Opus 5
|
e326481f2f
|
二七王:前端子项目 A 实施计划
14 个任务,每个自带 TDD 循环与提交:shared 抽取与同步(1-2)、
单测框架与漂移守卫(3)、core 四个纯逻辑模块(4-7)、布局求解器(8)、
常量层三批(9/10/12)、精灵索引(11)、常量机械守卫(13)、接入骨架(14)。
顺带修订设计文档两处:shared 抽取函数数量 7→8(原文列了 8 个名字),
CardMark.markOf 签名与计划对齐(拖拉机判定需整手牌作上下文)。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 18:55:26 +08:00 |
|
 joywayerandClaude Opus 5
|
0f29c2e08c
|
二七王:shared 同步脚本改放仓库根目录
同步是跨端动作(源在 server、目标在 client),不属于任何一端,
故 sync_shared.cmd 放根目录而非 client/scripts/。
同时写明单向流水线纪律:只改服务端 shared,改完跑脚本同步;
前端副本只读,本地改动会被覆盖,由字节一致守卫测试兜底。
验收补一条:CLAUDE.md「常用命令」需同步收录该脚本。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 18:42:52 +08:00 |
|
 joywayerandClaude Opus 5
|
849de06194
|
二七王:前端子项目 A(地基与逻辑层)设计定案
前端拆为 A→F 六个子项目,本文定案 A:目录结构、常量层全量、
core 纯逻辑、codes/ui 布局求解器、shared 抽取与同步、单测框架、接入骨架。
两处取舍已定:求解器归子游戏 codes/ui;排序算法走服务端 shared/ 同源
(抽 7 个牌值编码与牌型分组函数,arith 改挂引用,现有 20 个测试为安全网)。
资源与精灵不阻塞编码——常量文件先行、即建资源的规格书,编辑器后期照建。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-26 18:36:55 +08:00 |
|
joywayer
|
685b629854
|
claude doctor以及规则修改,修复
|
2026-08-19 08:01:47 +08:00 |
|
 joywayerandClaude Opus 5
|
b255730c1b
|
文档:新增「前端数据驱动架构」规范(前端无对局状态机 + 防作弊四条)
前端的阶段/状态/显示一律以服务器为准,前端不得自建状态机、不得本地推导或推进流程;
由此推出请求包只带意图、服务端按可见性下发两条防作弊约束。
- client 05 §6 改为「数据驱动架构:服务端状态的投影」,新增 6.1 前端无对局状态机、
6.2 视图=f(服务端快照)(丢弃 this.data 仅凭最近快照重画须一致)、6.3 本地 UI 态白名单
(并澄清与 04 §5.6 乐观清除例外的关系);原条目归入 6.4
- client 04 §1 新增「请求包只带意图,不带结论」;§5.3 补「不得据本地推断补齐未下发状态」
- server 03 新增 §1.3 按可见性下发(下发即泄露)、§1.4 状态机唯一在服务端并随包下发
- server 04 §4 补「前端不是数据源」;§8 新增「只接受意图入参,客户端回传结论一律忽略」
- 两份 README 红线速查与审查速查表同步补条目
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-08-16 20:02:55 +08:00 |
|
joywayer
|
3b7c103387
|
模板工程升级修改
|
2026-08-11 22:17:54 +08:00 |
|
joywayer
|
047561675b
|
新规hook
|
2026-07-06 17:16:05 +08:00 |
|
 joywayerandClaude Opus 4.8
|
363f97cdbe
|
文档修复:移除指向不存在文件的失效链接引用
client/02、client/03 中指向 docs/important/client/友乐游戏引擎精灵与资源管理接口规范.md
(该文件不在仓库)的 markdown 链接改为纯文字规范名,保留文意、去除失效链接。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-05 22:51:28 +08:00 |
|
 joywayerandClaude Opus 4.8
|
f776e4c817
|
文档修复:校正开发指南编号与失效交叉引用
- CLAUDE.md:前端指南编号由「01→05」订正为「01→06」(06 子游戏接入模式实存且已被本文件他处引用);删除已过期的 server/docs 旧副本警告(该旧副本已从工作树删除)。
- 两份 development-guide README + 各章节正文:将旧路径 server/docs/development-guide、client/docs/development-guide 统一订正为 docs/server、docs/client;docs/engineering 订正为 docs/games/engineering。
- 客户端 README 阅读顺序补齐缺失的 06 篇。
- 服务端 README 移除指向不存在的 docs/important/server 的条目。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-05 22:39:37 +08:00 |
|
 joywayerandClaude Opus 5
|
594820d393
|
初始化仓库:友乐/gameabc 房卡游戏平台脚手架(client + server + docs)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-01 18:13:26 +08:00 |
|