← 返回博客
作者:BluffKing · · 更新
冤家牌与发牌机制
按当前代码追踪房间请求、随机数交换和固定牌序,区分局后一致性检查与仍需信任运营方的部分。
不会按输赢安排牌。普通德州每一手的牌序在下注前就已固定:发牌进程先秘密洗牌并加密整副牌,公布对它的承诺,支持协议的玩家客户端再提交各自的随机数,玩家随机数、这份承诺和 hand id 共同决定哪张加密牌落到哪个位置。发牌进程在知道玩家随机数之前就锁定了牌组,所以无法把某张牌引向某个人。之后的下注只影响谁继续、何时结束和如何分池,不会在转牌或河牌时按谁输谁赢临时挑牌;玩家身份、付费状态和历史输赢也都不是洗牌的输入。
客户端只能提交跟注、加注这类行动,不能指定下一张牌;机器人也不能通过机器人接口读取真人底牌。牌局结束后,参与发牌的玩家可以检查证明,确认自己实际看到的牌来自那一副锁定的完整牌组;弃牌和没发出的牌始终加密。步骤见手牌验证指南。
这些检查有边界。普通模式下发牌进程持有牌堆,运营方仍需被信任;如果没有混入运营方事先不知道的玩家随机数,承诺只能证明局后一致,不能排除承诺前挑选种子;已承诺的种子被扣留或运营方选择性中止某一手,也会留下选择空间;文件自洽也不能证明线上运行的程序与源码一致。想在牌局中对服务器隐藏底牌,见高级加密发牌;断线、崩溃和发布时牌局怎样处理,见牌局恢复与发布保护。