§ RULES · RTP 95% · ON-CHAIN
规则
怎么玩、赔多少、凭什么相信它。一局只有一件事:瞄准、开火;打到谁、打没打死、赢多少,全由链上合约按下面的规则算出,任何人都能重算。
玩法
一局怎么打
入座
100 人场的炮台分布在场地上下两条边,每边 50 个;4 人私密场在四个角。空座直接坐。你停手超过 5 秒(房主可调),满员时别人可以顶替你的座位。
开火
选注额档位,瞄一个方向。下边的炮台只能往上打,上边的只能往下。长期每秒 1 发,闲一会儿可以连打 2 发;太快的那发会被合约往后挪(最多 2 秒),不会被拒绝。
子弹
每秒 1,600 px,碰墙反弹,最多 3 次,最远飞过场地对角线(3,442 ms)。打到的是第一条碰到的鱼,不能隔着鱼打后面的。
结算
子弹碰到鱼的那一刻才结算(通常 0.4–1 秒后),这时才抽随机数决定打没打死。打死了,派彩 = 注额 × 倍率,记进你的房间余额。
特殊情况
| 发生了什么 | 结果 | 注额 |
|---|---|---|
| 子弹要打的那条鱼在子弹到之前被别人打死了 | 子弹继续飞,链上重新找下一条碰到的鱼(重搜) | 照常结算 |
| 重搜后整个射程都碰不到鱼 | 退注 | 全额退回 |
| 一出膛就碰不到任何鱼 | 交易成功,但不入队 | 不扣 |
| 庄家资金不够锁定这一发的最大派彩 | 开火失败(E_HOUSE_LOW) | 不扣,只花 gas |
钱
钱包要留
APT,做押金与 gas 预留;钱包下注时再加注额。
每发押金
APT,链上存储押金,结算后全额退给付押金的人。
每发 gas
APT,与注额无关。数字是旧版本实测,主网部署后复测。
奖金记在房间余额里:可以接着用余额下注,也可以随时提现(一笔 约 0.0001 APT 的 gas)。只有你本人的签名能提现。
用程序打
可以,期望一样。主账户授权一把"机器人密钥",设好有效期、用余额下注的额度和底线;机器人能替你开火、占座,但提不了现、改不了授权。内测就是这样做到"授权一次,之后开火不弹窗"的;也可以把 AI Skill 交给你的 AI 助手代打。
公平与赔率
期望为什么固定
每种鱼有一个命中概率 p 和一个整数倍率 m,合约里写死:m = 950,000 ÷ 阈值(整数除法),p = 阈值 ÷ 10⁶。所以 p × m 在每一种鱼上都是 0.95:
打大鱼不会更划算,只会让输赢起伏更大。3× 与 15× 两种因为阈值取整,比 0.95 低不到百万分之五,偏向庄家。
钱去哪
技术费只对真正结算的注额收;退注的那发谁都不收。
赔率与每发成本
| 鱼种 | 半径 | 命中概率 | 倍率 | 打死派彩 | p × m |
|---|
为什么不让客户端选鱼
如果玩家能跳过挡路的鱼、只打金龟,期望不变,但每发输赢的方差放大约 95 倍,庄家的派彩波动也跟着放大两个数量级。在负期望游戏里,大起伏本身就是一种策略优势。
所以协议里根本没有"选鱼"这个参数:开火交易只带方向,打到谁由链上几何决定——沿弹道第一条碰到的鱼,挡在前面的挡得住。
随机数
- 用 Aptos 链上随机数,在结算那一刻抽,不是开火时
- 结算入口是私有的随机数入口:抽到不好的结果,也不能让交易回滚重来
- 开火时谁都不知道结果,包括运营方
顺序
子弹按碰到鱼的时刻排队(全局时间轮),由之后的交易顺带结算,不按交易到达的先后。两个人抢同一条鱼时,谁拿到由链上时间决定,不改变任何人的期望。
派彩一定付得出
每发出膛时,合约从庄家资金里锁定 100 倍注额(可能的最大派彩)。庄家可用的钱不够锁定时,新的开火直接失败、只花 gas;已经在飞的子弹照常结算、照常派彩。
连接中…
不保证什么
- 不保证赢:负期望,长期大约亏掉注额的 5%
- 短期起伏很大:每秒 1 发打 1 小时,期望 −180 注,约 23.9% 的人领先,95 分位 +270 注(模拟)
- 私密房不隐藏数据:私密只限制谁能入座,房间里的每一发仍然公开
- 合约尚未审计,代码升级权目前在多签手里(安全与治理)