杭州麻将出牌训练器:写完没上线A mahjong discard drill that never shipped
- 年份
- 2026
- 状态
- 停了
- 结果
- 三小时写完的引擎,测试全过;出题器八成的答案落在同一个选项上
杭州麻将里白板当百搭用,规则我在白板之神那条里写得细。我打牌不好,最没把握的就是每一手该打哪张,于是写了个训练器只练这一件事:发十四张牌,你点一张打出去,程序把每一种打法都算一遍,排出最优解,再告诉你自己选的那张差在哪。代码在 GitHub 上。
core/ 里一千行 JavaScript 是全部算法。「还差几步能胡」要同时按三条路线算——四组三张加一对、七个对子,还有杭州本地那种把一张财神单独留着、其余四组凑齐、摸到什么都能胡的牌型——取最小的那个,手里每多一张财神再少一步。第一版解析打印出来是「向听 1,进张 24 枚」,新手看了不知道该改什么,后来单加了一层翻译。现在跑测试打印出来的是这种句子:「打8万和打9万虽然离胡牌的步数一样,但打9万之后能摸到的有用牌多了10张,胡牌机会更大。」
同一天下午还加了第二个模式:看三家打出来的牌,判断你手上这张扔出去安不安全。这种题不能随机发,随机发出来的局面十有八九没什么可练的。做法是反着来——先定对手在做什么牌、听哪几张,再倒推出他会按什么顺序弃牌,最后给你配一手牌,让最该打的那张正好是最危险的那张。
25 次提交,24 次挤在 2 月 19 日下午三个小时里,第二天晚上又推了一次大的。小程序 appid 申请了,在开发者工具里跑得起来,但没提交过审核,也没有用户。计划文档最后那份手动验收清单,九项全是空方框;结果页到现在还是一行 Page({}),屏幕上写着「预留页面」。
安全判断题给三个按钮:安全、注意、危险。拿它自己的生成器跑 1200 道题,其中约 800 道是安全判断,答案是「安全」的六百多道,「危险」一百多道,「注意」只有一两道。中间那个按钮基本是摆设,什么都不想一路点「安全」,正确率 82%。该修的是出题时那个危险度打分,让答案均匀落在三档上;那天晚上做的最后一件事,是给它加对战模式,后面还挂了六个云函数。引擎本身没毛病,十个测试文件九十一条断言,一次干净 clone 跑下来还是全过。缺的是从「能跑」到「有人用」中间那些不好玩的活。