Skip to content

Cat-bl/card-game-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

card-game-plugin

统一卡牌游戏插件,支持 21 点、斗牛、炸金花三种扑克牌玩法。puppeteer 渲染 HTML 界面,群聊发送图片交互。

使用效果

效果图1

安装

在 Yunzai 根目录下执行:

git clone --depth=1 https://github.com/Cat-bl/card-game-plugin plugins/card-game-plugin

游戏一览

游戏 发起命令 牌数 玩法
21 点 #21点 / #21 2+ 张 与庄家比牌,不超过 21 点
斗牛 #斗牛 / #牛牛 5 张 与庄家比牌,3 张凑 10 的倍数
炸金花 #炸金花 / #金沙 3 张 玩家互比,盲注/明注下注博弈

三个游戏独立管理,同一群可存在不同类型的游戏。

通用指令

指令 说明
#卡牌帮助 查看卡牌游戏总览和快速开始
#卡牌更新 / #卡牌强制更新 更新插件(主人)
#21再来一局 / #斗牛再来一局 / #炸金花再来一局 结算后继续下一轮

21 点(Blackjack)

流程

#21点 → 加入 → 开始 → 下注 → 叫牌/停牌/双倍/保险 → 庄家回合 → 结算

指令

指令 说明
#21点 / #21 发起游戏
#加入21点 加入游戏
#退出21点 等待阶段退出
#开始21点 开始并进入下注
#21下注 N 下注 N 筹码(10~500)
#21默认下注 使用默认赌注(50)
#21叫牌 再要一张牌
#21停牌 停止要牌
#21双倍 双倍下注并只再要一张牌
#21保险 庄家明牌为 A 时可买保险
#21点状态 查看游戏状态
#21点帮助 查看详细规则
#21点结束 强制结束(发起人/主人)
#21再来一局 结算后继续下一轮

规则

  • 牌面值:A=1/11, 2~10=面值, J/Q/K=10
  • 初始 2 张牌,可选叫牌至停牌或爆牌(超过 21 点)
  • 黑杰克(A+K/Q/J/10):1.5 倍赔付
  • 庄家 17 点以上停牌,玩家爆牌即输
  • 双倍下注后只能再要一张牌

斗牛(Dou Niu)

流程

#斗牛 → 加入 → 开始 → 下注 → 自动发牌结算

指令

指令 说明
#斗牛 / #牛牛 发起游戏
#加入斗牛 加入游戏
#退出斗牛 等待阶段退出
#开始斗牛 开始并进入下注
#斗牛下注 N 下注 N 筹码(10~500)
#斗牛默认下注 使用默认赌注(50)
#斗牛状态 查看游戏状态
#斗牛帮助 查看详细规则
#斗牛结束 强制结束(发起人/主人)
#斗牛再来一局 结算后继续下一轮

规则

  • 每人发 5 张牌,与庄家比较
  • 从 5 张牌中找出 3 张点数之和为 10 的倍数(有牛)
  • 剩余 2 张点数之和取个位数 = 牛几
  • 无任何 3 张和为 10 倍数 = 无牛
  • A=1, 2~10=面值, J/Q/K=10

牌型大小

牌型 倍率 说明
五小牛 5 倍 5 张牌均 ≤4 且总和 ≤10
炸弹 4 倍 4 张相同点数
五花牛 4 倍 5 张全是 J/Q/K
牛牛 3 倍 3 张 10 倍 + 2 张 10 倍
牛七 ~ 牛九 2 倍
牛一 ~ 牛六 1 倍
无牛

炸金花(Zha Jinhua)

流程

#炸金花 → 加入 → 开始(发牌+底注)→ 轮流操作(看牌/跟注/加注/弃牌/比牌)→ 最后一人获胜

指令

指令 说明
#炸金花 / #金沙 发起游戏
#加入炸金花 加入游戏
#退出炸金花 等待阶段退出
#开始炸金花 开始游戏(发牌+底注)
#看牌 查看自己手牌(私信发送),进入明注状态
#跟注 支付最低注额继续游戏
#加注 N 加注到 N 筹码
#弃牌 放弃本局
#比牌 @某人 与指定玩家比牌,输者出局
#炸金花状态 查看游戏状态
#炸金花帮助 查看详细规则
#炸金花结束 强制结束(发起人/主人)
#炸金花再来一局 结算后继续下一轮

规则

  • 每人发 3 张牌,玩家之间互相比牌
  • 盲注(未看牌)下注基数较低,明注(看过牌)下注额翻倍
  • 每轮可选择:看牌(私信发手牌)→ 跟注 → 加注 → 弃牌 → 比牌(@ 某人)
  • 比牌输者出局,仅剩 1 人时自动获胜
  • 达到最大回合数自动强制比牌

牌型大小(从高到低)

牌型 说明
豹子 三张相同点数,AAA 最大
同花顺 同花 + 顺子
同花 三张同花色
顺子 三张连续点数(A23 最小,QKA 最大)
对子 两张相同 + 一张散牌
散牌 无关联的三张牌

特殊规则:**2·3·5(不同花色)**克制豹子 AAA。


配置

编辑 config_default/config.yaml(或覆盖至 config/config.yaml),支持热更新:

blackjack:
  minPlayers: 1
  maxPlayers: 6
  startingChips: 1000
  defaultBet: 50
  blackjackPayout: 1.5
  dealerStandOn: 17
  # ...

douniu:
  minPlayers: 1
  maxPlayers: 6
  startingChips: 1000
  defaultBet: 50
  # ...

zhajinhua:
  minPlayers: 2
  maxPlayers: 8
  startingChips: 1000
  ante: 10          # 底注
  blindStake: 10    # 盲注基数
  seenStake: 20     # 明注基数
  maxRounds: 20     # 最大回合数
  turnTimeout: 60   # 回合超时(秒)
  # ...

架构

card-game-plugin/
  index.js              # 动态加载 apps/*.js
  model/
    config.js           # YAML 配置 + 热更新
    deck.js             # 共享牌组工具
    render.js           # puppeteer 截图适配
  apps/                 # 命令处理
    blackjack.js        # 21点
    douniu.js           # 斗牛
    zhajinhua.js        # 炸金花
    update.js           # 卡牌更新 + 卡牌帮助
  games/                # 游戏引擎(每个游戏一个目录)
    blackjack/  engine.js, render.js
    douniu/     engine.js, render.js
    zhajinhua/  engine.js, render.js
  resources/html/       # HTML 模板
    help.html           # 插件总览帮助
    blackjack/  chat.html, help.html
    douniu/     chat.html, help.html
    zhajinhua/  chat.html, help.html

扩展新游戏只需创建 games/<name>/ + apps/<name>.js + resources/html/<name>/,无需修改共享层。


兼容

  • blackjack-plugin 迁移而来,21 点命令和玩法完全保留
  • 三个游戏的指令完全独立(#21... / #斗牛... / #炸金花...),不会产生命令冲突

About

适用于Trss yunzai的卡牌游戏插件

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors