我制作了一款小型猫主题麻将单机版(披露:Steam上的Meow-Jong)。玩家一直在问,牌桌是否被 rig 或无法解决,所以我决定测量而不是猜测。方法:从游戏的文件中取出所有 160 个牌桌布局(28 到 160 张牌),每张牌桌随机均匀放置 40 张牌,然后在每个牌桌上执行精确的深度优先搜索,使用死局表和通常的安全快捷方式(当剩余的每个牌面都免费时,清除所有)。每次交易的预算为 200,000 个位置;超过预算的交易被报告为未解决,而不是猜测。结果:
- 交易解决器解决的交易中,60% 可以解决,40% 不能解决。
- 形状优于大小。Jumper、Stadium 和 Star 每次都可以解决。包括心形在内的 11 个布局,在 40 次尝试中都没有产生可解决的随机交易。
- 心形是两个相同的叠加的轮廓,因此可以从链条的两端解开。
- “可解决”并不等同于“可赢得”:没有提示的玩家在随机合法的匹配中仍然在 78% 的可解决交易中被卡住。
- 反向交易(将两张空位配对,移除它们,重复;再次播放配对)在 8,000 次试验中产生了可解决的牌桌,每次平均 1.2 次尝试。这就是游戏的版本。
- 注意事项:21% 的交易在预算内无法解决,难以证明的交易倾向于不可解决,所以真实的可解决比例略低于 60%。
每张牌桌的表格、方法细节和 CSV:https://meowjong.com/mahjong-solitaire/is-mahjong-solitaire-always-solvable/ 愿意回答解决器或分享 Python 的问题。
评论 (0)