with one click
ai-game
交互式决策模拟游戏。当用户说 /history_game、摸鱼、来局游戏、play game、无聊、game 或想玩文字策略游戏时触发。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
交互式决策模拟游戏。当用户说 /history_game、摸鱼、来局游戏、play game、无聊、game 或想玩文字策略游戏时触发。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | ai-game |
| description | 交互式决策模拟游戏。当用户说 /history_game、摸鱼、来局游戏、play game、无聊、game 或想玩文字策略游戏时触发。 |
| version | 1.0.0 |
| author | duanchao |
| metadata | {"hermes":{"tags":["game","simulation","interactive","decision","history","strategy","moyu"],"category":"creative","related_skills":[]}} |
一个文字交互式决策模拟游戏 skill,专为碎片化时间(如摸鱼)设计。支持历史情景、体育执教、商业模拟、末日生存等多种游戏类型。
这个 skill 将 AI 助手变成游戏主持人,运行回合制决策模拟游戏。内置 5 个精品游戏模板,并提供动态生成引擎支持自定义场景。具备存档/读档、成就追踪、浏览器可视化仪表盘等功能。
/history_game、摸鱼、来局游戏、play game、无聊、game触发后展示以下菜单:
=== 决策模拟器 ===
【精品游戏】(即开即玩)
1. 历史情景模拟 — 赤壁/淝水/土木堡...穿越做决策
2. 世界杯教练 — 排兵布阵带队夺冠
3. 创业 CEO — 融资/招人/产品决策
4. 末日生存 — 资源分配 + 道德困境
5. 皇帝模拟 — 治国理政/平衡朝堂
【自定义】
6. 输入任意场景,AI 现场生成游戏
【存档】
7. 继续上次的游戏
8. 查看成就
输入数字选择 >
每个回合必须严格遵循以下顺序:
🔍 要求更多情报(消耗时间但减少不确定性)✏️ 自定义方案(玩家提出自己的策略)严格执行以下限制:
每回合结束后提醒玩家可以存档。存档数据是结构化 JSON,玩家可以复制粘贴来恢复进度。格式:
{
"game": "history|worldcup|ceo|survival|emperor|custom",
"scenario": "赤壁之战",
"role": "孙权",
"round": 4,
"stats": {},
"key_decisions": ["回合1: 选择联盟", "回合2: 派周瑜出征"],
"achievements": [],
"timestamp": "2026-07-07"
}
玩家选择"继续上次的游戏"后,请他们粘贴存档数据,然后从中恢复游戏状态。
如果平台支持文件操作:
~/.config/opencode/game-saves/~/.claude/game-saves/~/.hermes/game-saves/~/.ai-game-saves/大多数情况下使用复制粘贴 JSON 的方式,因为它在所有平台上都可以工作。
跨游戏追踪成就。完整列表见 references/achievements.md。
每回合结束后静默检查是否有成就解锁。如果有,宣布:
🏅 成就解锁:[成就名] — [描述]
已解锁的成就包含在存档数据中。
玩家选择内置游戏(选项 1-5)后,加载 templates/ 目录下对应的模板:
| 选项 | 模板文件 | 描述 |
|---|---|---|
| 1 | templates/history.md | 历史情景模拟 |
| 2 | templates/worldcup.md | 世界杯教练模拟 |
| 3 | templates/ceo.md | 创业 CEO 模拟 |
| 4 | templates/survival.md | 末日生存 |
| 5 | templates/emperor.md | 皇帝/王朝模拟 |
读取选中的模板,将其作为游戏专属系统提示词,配合上面的核心规则使用。
玩家选择自定义场景时,按照 references/framework.md 中的 5 模块框架即时生成完整游戏:
经过 6-10 个回合后(因游戏类型而异),触发结局:
| 维度 | 规则 |
|---|---|
| 每回合字数 | 最多 500 |
| 每回合选项数 | 3-4 + 自定义 |
| 明显正确答案 | 绝不允许 |
| 坏决策的后果 | 必须是坏的 |
| 随机事件 | 每回合至少 1 个 |
| 态势面板 | 每回合必须有 |
| 存档提醒 | 每 2-3 回合 |
| 游戏时长 | 6-10 回合 |
| 自定义选项 | 始终可用 |
| 错误 | 修复 |
|---|---|
| 给了明显正确的选项 | 确保每个选项都有优点和缺点 |
| 对坏决策太宽容 | 明确规定:坏决策 = 坏结果,不留情面 |
| 回合太长 | 严格执行 500 字上限 |
| 忘了态势面板 | 每回合都必须有——这是记忆锚点 |
| 对手不动 | 对手必须对玩家策略做出反应 |
| 长游戏中上下文漂移 | 态势面板 + 存档数据防止这个问题 |
| 所有选项感觉一样 | 选项应该代表真正不同的策略方向 |
每回合的态势面板必须使用 Unicode 可视化格式渲染。适用于所有平台,零依赖。
╔══════════════════════════════════╗
║ ⚔️ {游戏名} · 第 {N} 回合 ║
╠══════════════════════════════════╣
║ {图标} {名称} {进度条} {值}/{最大值} ║
║ {图标} {名称} {进度条} {值}/{最大值} ║
║ {图标} {名称} {进度条} {值}/{最大值} ║
╠══════════════════════════════════╣
║ 🤝 外交 ║
║ {名称} {表情} {状态} ║
╚══════════════════════════════════╝
使用方块字符渲染进度条:
████(高值)██░░(中等值)░░░░(低值)示例(7/10):
🗡️ 军力 ███████░░░ 7/10
颜色提示用 emoji:
🤝 外交关系
刘备 🟢 盟友 | 曹操 🔴 敌对 | 刘璋 🟡 中立
交互式浏览器游戏仪表盘。提供实时状态条、可点击选项、事件日志和成就通知。
在游戏开始时(玩家选好游戏但第 1 回合开始前),提出:
"这个游戏在浏览器里可以有实时仪表盘——状态条、选项按钮、事件记录都能看到。要打开吗?"
玩家同意则启动仪表盘。拒绝则只使用 Layer 1。
scripts/start-server.sh --project-dir /path/to/project --open
返回 JSON 包含 screen_dir 和 state_dir。保存两个路径供后续使用。
每回合后将 JSON 文件写入 screen_dir:
# 写入状态文件(文件名每回合唯一)
# 路径:$SCREEN_DIR/round-{N}.json
状态 JSON 格式:
{
"game": "history",
"title": "赤壁之战",
"role": "孙权",
"round": 3,
"totalRounds": 10,
"situation": "曹操大军已至赤壁,号称八十万...",
"stats": [
{ "name": "军力", "icon": "🗡️", "value": 8, "max": 10, "change": "+1" },
{ "name": "补给", "icon": "🌾", "value": 6, "max": 10, "change": "-1" },
{ "name": "士气", "icon": "👥", "value": 7, "max": 10, "change": "" }
],
"diplomacy": [
{ "name": "刘备", "status": "ally" },
{ "name": "曹操", "status": "enemy" },
{ "name": "刘璋", "status": "neutral" }
],
"advisors": [
{ "name": "周瑜", "opinion": "火攻正当其时!", "stance": "主战" },
{ "name": "张昭", "opinion": "曹操势大,宜求和...", "stance": "主和" }
],
"options": [
{ "key": "A", "title": "火攻赤壁", "desc": "借东风火烧连环船", "supporter": "周瑜", "risk": "若无东风则全军覆没" },
{ "key": "B", "title": "坚守不出", "desc": "据守南岸消耗敌军", "supporter": "张昭", "risk": "粮草可能先于对方耗尽" },
{ "key": "C", "title": "派遣使者", "desc": "试探曹操和谈条件", "supporter": "鲁肃", "risk": "被视为软弱,士气下降" }
],
"events": ["回合1: 孙刘结盟", "回合2: 周瑜练兵三万"],
"achievements": [],
"newAchievement": null
}
成就解锁时设置 newAchievement:
"newAchievement": { "name": "以少胜多", "desc": "在军力劣势下赢得战斗" }
推送状态后,检查 $STATE_DIR/events 获取浏览器交互:
{"type":"click","choice":"A","text":"火攻赤壁","timestamp":1720350000}
玩家也可以在终端输入选择。终端输入优先于浏览器点击。
游戏结束时:
scripts/stop-server.sh $SESSION_DIR