主要思路:
- 为了实现游戏中玩家的牌不会在合约中暴露,所有牌采取线下本地存储,链上验证。
- 为了实现游戏中玩家可以自由交易卡牌和星星,添加telegram id,使得玩家可以私聊并交易。
- 为了使得作弊多开的成本大于收益,设定入场金的部分需要交给庄家,或者滚入下场牌局。
- 为了隐藏玩家手牌,采取线下生成文件+hash验证的方式
- 开局记录玩家的所有手牌hash,并登记归属,结尾的时候再验证玩家的牌是(4石4剪4布)
- 交换牌需要通过交易所确认,登记归属的交换。
- 如果有人骗牌,可能出现双花,需要验证每个hash只被用了一次。用过之后牌就无效了。
- 玩家列表只有昵称和TG ID,星星数量是点开玩家才能看到的。这是为了避免星最多和星最少的玩家成为活靶子。
Version 1.0
- 游戏大厅中可以有多场游戏同时进行(可以从1场开始)
- 每场游戏的属性包括:
- 报名开始时间
- 报名截止时间
- 游戏开始时间
- 游戏时长(可选:30min,1h,2h,4h,…)
- 人数上限
- 入场金(可选:1u,5u,100u,1000u,…)
- 报名人数(报名截止后生成)
- 游戏台数量(需要考虑是否需要限制数量)
- 聊天大厅
- 每个玩家的属性
- 玩家昵称
- 钱包地址
- 当前信用点
- telegram id
- 回合历史(游戏中生成)
- 报名阶段
- 玩家部分
- 玩家在游戏大厅中选择一场游戏进行报名
- 缴纳入场金到合约
- 上传自己的手牌(Card)和星星(Credit)文件的HASH到本场游戏的验证器
- 验证器检验格式,并显示是否上传验证成功
- 系统部分
- 登记玩家信息
- 收取所有玩家入场金
- 统计玩家数量
- 牌堆:将所有玩家的手牌和星星的HASH登记好
- 手牌(Card)的属性
- 星星(Credit)的属性
- 关于手牌和星星的说明
- 可以设定统一的手牌和星星的格式
- 可以暂定为一个txt文件
- 存储在玩家的本地硬盘
- 可以在链下传输交易(通过telegram)