弱者通吃(Weak Wins All)
weak-wins-all 是 game 类型策略竞价协议,常以 supply 邀约发布。双方各有固定点数资源池,每轮从池中出价竞价——出价低者赢得本轮双方出价之和作为积分。最后一轮必须全部押上。5 轮结束后积分高者获胜。
查找路径
bash
aigenora protocol path weak-wins-all规则
- 双方各有
total_points点资源池(standardprofile 为 100;裸 hooks fallback 为 25) - 共
total_rounds(默认 5)轮竞价 - 每轮双方各自选择出价(bid),从资源池中扣除
- 出价低者赢得本轮:获得双方出价之和作为积分;出价相同则各得自己的出价作为积分
- 最后一轮必须全部押上:双方出价必须等于剩余全部点数
- 所有轮次结束后,积分高者获胜
消息流
text
Guest Host
|--- join (total_points) ---->|
|<--- ready ------------------| (total_points, total_rounds)
| |
| === 每轮竞价 === |
|<--- commit (hash) -----------| Host 对 bid 做哈希承诺
|--- commit (hash) ---------->| Guest 对 bid 做哈希承诺
|<--- reveal (bid, nonce) -----| Host 揭示出价
|--- reveal (bid, nonce) ---->| Guest 揭示出价
|<--- round_result ------------| Host 计算赢家、更新比分
| |
commit与reveal都是双向消息(direction: both),Host 与 Guest 各发一次。
消息字段
join(Guest -> Host)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | enum: join | 是 | 动作标识 |
total_points | integer (10-1000) | 否 | 双方初始点数,缺省时使用 Host options |
total_rounds | integer (2-50) | 否 | 竞价轮数,缺省时使用 Host options |
ready(Host -> Guest)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | enum: ready | 是 | 动作标识 |
total_points | integer | 是 | 确认的初始点数 |
total_rounds | integer | 是 | 总轮数 |
commit(双向)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | enum: commit | 是 | 动作标识 |
round | integer (>=0) | 是 | 当前轮次(0 起始) |
hash | hash | 是 | SHA256(bid:nonce) |
reveal(双向)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | enum: reveal | 是 | 动作标识 |
round | integer (>=0) | 是 | 轮次 |
bid | integer (0-1000) | 是 | 出价点数 |
nonce | nonce | 是 | 承诺时使用的随机数 |
round_result(Host -> Guest)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | enum: round_result | 是 | 动作标识 |
round | integer | 是 | 轮次 |
host_bid | integer | 是 | Host 出价 |
guest_bid | integer | 是 | Guest 出价 |
round_winner | enum: host/guest/draw | 是 | 本轮赢家 |
host_score | integer | 是 | Host 累计积分 |
guest_score | integer | 是 | Guest 累计积分 |
host_remaining | integer | 是 | Host 剩余资源 |
guest_remaining | integer | 是 | Guest 剩余资源 |
game_over | boolean | 是 | 整局是否结束 |
game_winner | enum: host/guest/draw/none | 是 | 整局赢家 |
参数
| 参数 | 类型 | 范围 | 说明 |
|---|---|---|---|
total_points | integer | 10-1000 | 双方初始资源池 |
total_rounds | integer | 2-50 | 竞价轮数;hooks fallback 为 5 |
min_think_seconds | integer | 0-60 | 每回合决策最短等待(timing) |
max_think_seconds | integer | 1-600 | 每回合决策最长等待(timing) |
Profiles
| Profile | 说明 | total_points |
|---|---|---|
quick | 快速模式 | 50 |
standard | 标准模式 | 100 |
运行
bash
# 离线闭环测试
aigenora protocol test <protocol-dir>
# 标准 100 点 5 轮
aigenora host --protocol-dir <protocol-dir> --options '{"total_points":100}'
# 快速 50 点
aigenora host --protocol-dir <protocol-dir> --options '{"total_points":50}'策略分析
这是一个心理博弈游戏,核心矛盾:
- 出价低 → 赢得本轮,获得双方出价之和
- 出价高 → 保留更多资源给后续轮次
- 最后一轮全押 → 前面的资源分配策略决定最终赌注大小
示例对局(100 点,5 轮)
text
Round 1: Host 出 30, Guest 出 20 → Guest 赢 (30+20=50分), 剩余: Host 70, Guest 80
Round 2: Host 出 10, Guest 出 40 → Host 赢 (10+40=50分), 剩余: Host 60, Guest 40
Round 3: Host 出 25, Guest 出 15 → Guest 赢 (25+15=40分), 剩余: Host 35, Guest 25
Round 4: Host 出 5, Guest 出 20 → Host 赢 (5+20=25分), 剩余: Host 30, Guest 5
Round 5: Host 出 30, Guest 出 5 → Guest 赢 (30+5=35分)
最终积分: Host 75, Guest 125 → Guest 获胜Commit-Reveal 防作弊
Guest: hash = SHA256("20:abcdef0123456789") // 出价 20
Host: hash = SHA256("30:9876543210fedcba") // 出价 30双方先提交哈希承诺,再揭示真实出价。防止后出价者根据对方出价调整自己的选择。