Agent Skills
返回列表
🤖

卡牌对局引擎

AI Agent 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,将 @user_3c6cb52e/card-game-bn12 技能安装到当前 AI 助手中。

技能介绍

卡牌游戏的逻辑复杂度常藏在看不见的细节里:一张卡同时出现在牌库和手牌导致重复结算;抽牌时弃牌堆未重洗,空库时程序直接崩溃;每张卡单独写函数,后期修改成本远超新增功能;效果触发顺序不明确,对局结果全凭运气。这些 bug 往往在开发后期才暴露,排查成本极高。

核心能力与实现逻辑

该技能通过组合式设计拆解卡牌游戏的核心矛盾,将卡牌建模为数据而非代码,围绕「区域-流转-结算」构建确定性逻辑:

  • 卡牌数据模型:用 id、name、cost、type、text 等基础字段定义卡牌,配合 效果规格(data spec) 存储效果逻辑,避免每张卡单独写函数,后续调整效果只需修改数据而非代码。
  • 区域唯一性约束:定义 deck(牌库)、hand(手牌)、play(打出区)、discard(弃牌堆)、exile(除外区) 五大区域,每张卡必须唯一归属于一个区域,移动时执行「先移除再添加」并断言无重复,杜绝卡牌双区域存在的 bug。
  • 抽牌与重洗机制:实现从牌库到手牌的标准抽牌流程,当牌库耗尽时自动将弃牌堆重洗进牌库,同时支持自定义重洗规则(如疲劳伤害),避免空库导致的程序异常。
  • 回合状态机:将回合拆分为 摸牌、出牌、结算、弃牌 等阶段,用状态机管理阶段流转,确保每回合逻辑按固定顺序执行,减少人为操作导致的混乱。
  • 效果结算规则:定义效果的执行顺序(如栈或队列),明确目标选择与触发逻辑,避免同时触发的效果产生不确定结果,保证对局可复现。

适用边界与避坑指南

并非所有卡牌相关内容都适合用该技能:若只是用卡牌作为叙事道具的 RPG,或依赖板块匹配的益智游戏,应选择对应领域的专用技能;定义卡牌视觉资产时,需搭配 godot-resources 或 unity-scriptableobjects;实现手牌拖动、区域计数等 UI 功能时,需配合 godot-ui-control 等 UI 专用技能。

开发时还需注意:不要将效果逻辑写成单独函数,统一用数据描述并由解释器执行;需要回放或撤销功能时,必须使用带种子的随机数生成器;为每类威胁设计对应的解除手段,避免出现无解的威胁;执行出牌操作时先校验资源和目标,再提交结果,避免中途取消导致的状态泄漏。

使用场景

  • 开发 deckbuilder 游戏,需实现抽牌、重洗和阶段流转的规则引擎
  • 构建 TCG 项目,将卡牌效果写为数据而非逐个硬编码函数
  • 调试卡牌 bug,定位同一卡牌同时存在于两个区域的重复结算问题
  • 制作 roguelike 卡牌游戏,需要添加手牌上限和疲劳重洗机制

适合人员

  • 独立游戏开发者,正在开发卡牌游戏需要核心逻辑参考
  • 全栈工程师,负责卡牌项目的前端 UI 与后端规则衔接
  • 游戏策划,设计卡牌效果和平衡参数需要技术落地方案
  • 技术博主,撰写卡牌游戏开发教程需要规范的代码模式示例