Pokemon Red

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 PyBoy 模拟器自动玩《宝可梦 红》。OpenClaw 代理充当玩家——启动模拟器服务器、获取截图、读取内存中的游戏状态,并通过 HTTP API 做出决策。适用于想要在《宝可梦 红》中进行战斗、探索、练级或与其他代理竞争的代理。依赖 Python 3.10+、pyboy 以及合法获取的《宝可梦 红》ROM。

Pokemon Red – You Are the Trainer.

功能概述

Pokemon Red – You Are the Trainer.是一项面向实际任务的技能,主要用于You play Pokemon Red 直接播放 Pokemon Red. 不播放中间人脚本. 您启动模拟服务器,点击它的 HTTP API 进行截图和状态, 查看屏幕, 确定什么。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
  • 实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

使用与执行

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

Pokemon Red — 你就是训练家

你直接游玩《Pokemon Red》,不经过任何中间脚本。你启动模拟器服务端,通过其 HTTP API 获取游戏画面截图与状态,观察屏幕,决定操作,再将指令发回。

初始设置(首次运行)

克隆仓库并安装依赖:

git clone https://github.com/drbarq/Pokemon-OpenClaw.git
cd Pokemon-OpenClaw
pip install pyboy pillow numpy fastapi uvicorn requests
# 将你合法获取的 ROM 文件置于 ./PokemonRed.gb

将环境变量 POKEMON_DIR 设置为你克隆该仓库的路径(默认值:~/Code/pokemon-openclaw)。

启动一个会话

# 启动模拟器服务端(后台进程)
cd $POKEMON_DIR && python scripts/emulator_server.py --save ready --port 3456

回合流程

每回合请按顺序执行以下步骤:

1. 获取状态 + 截图

curl -s http://localhost:3456/api/state
curl -s http://localhost:3456/api/screenshot -o /tmp/pokemon_current.png

然后使用 image 工具查看截图。务必先看再操作。

2. 决策:使用 navigate 还是手动控制?

旅行时请优先使用 navigate —— 它会阻塞,直到抵达目的地、遭遇野生宝可梦战斗或卡住为止:

curl -s -X POST http://localhost:3456/api/navigate 
  -H 'Content-Type: application/json' 
  -d '{"destination": "Viridian City"}'

navigate 返回以下状态之一:

  • "status": "arrived" —— 已抵达!继续推进任务。
  • "status": "battle" —— 途中遭遇野生宝可梦战斗中断。完成战斗后,再次调用 navigate。
  • "status": "stuck" —— 无法到达目标地点。尝试手动按键操作,或更换路线。
  • "status": "error" —— 目标名称无效或无可用路径。请检查支持的目的地列表。

响应中始终包含完整的游戏状态,因此你能精确了解当前所处位置。

重要提示:navigate 是阻塞式调用,请为 curl 设置较长超时(60–120 秒)。

首次使用前,请先查询可用目的地:

curl -s http://localhost:3456/api/destinations

查询哪些地图已配置路径规划数据:

curl -s http://localhost:3456/api/maps

仅在以下情况才回退至手动按键控制:

  • navigate 返回 "stuck" 或 "error"
  • 你在建筑内部执行特定交互(如与 NPC 对话、开门等)
  • 你正处于对话界面或菜单界面

3. 手动控制(按需使用)

# 移动 / 交互
curl -s -X POST http://localhost:3456/api/press 
  -H 'Content-Type: application/json' 
  -d '{"buttons": ["up","up","a"], "reasoning": "Walking to door"}'

有效按键包括:up、down、left、right、a、b、start、select。每次最多发送 1–5 个按键指令。

4. 战斗(当 state 中 in_battle 为 true 时)

  • 战斗:按 a 打开战斗菜单,再按 a 选择 FIGHT,方向键选择招式,a 确认,之后持续按 a 跳过动画
  • 逃跑:按 a,再按 down、right、a 选择 RUN,之后持续按 a 跳过文本
  • 战斗后检查 state —— 若仍为 in_battle,则重复上述流程

5. 任务追踪

curl -s http://localhost:3456/api/quest                    # 当前任务目标
curl -s -X POST http://localhost:3456/api/quest/complete 
  -H 'Content-Type: application/json' 
  -d '{"lesson": "Door is at x=12"}'                      # 推进任务步骤 + 保存经验

6. 频繁保存

curl -s -X POST http://localhost:3456/api/command 
  -H 'Content-Type: application/json' 
  -d '{"command": "save", "name": "checkpoint_viridian"}'

关键接口端点

端点 方法 用途
/api/state GET 从 RAM 读取游戏状态(位置、队伍、徽章、战斗状态等)
/api/screenshot GET 获取游戏画面的 PNG 截图
/api/navigate POST 向指定名称的目的地执行路径规划
/api/destinations GET 列出所有支持导航的目的地
/api/maps GET 列出已配置路径规划数据的地图
/api/press POST 发送按键指令
/api/quest GET 获取当前任务及当前步骤
/api/quest/complete POST 标记当前步骤已完成,可选保存一条经验(lesson)
/api/knowledge GET 获取全部已习得的经验(lessons)
/api/knowledge/lesson POST 添加一条新经验(lesson)
/api/command POST 执行保存、加载、加速等命令

策略优先级

  1. 优先使用 navigate。 所有移动类操作均应首选 /api/navigate。它会阻塞直至抵达或触发战斗,无需轮询。
  2. 立即处理战斗。 若 navigate 返回 "status": "battle",请立即战斗(狂按 A),结束后再次对同一目的地调用 navigate。
  3. 随时确认任务进度。 始终清楚当前任务目标,避免无目的游荡。
  4. 管理 HP。 HP 低于 30% 时考虑治疗;低于 15% 时必须治疗。使用 navigate 前往最近的宝可梦中心。
  5. 忽略 text_active 标志。 文本检测标志存在缺陷(恒为 true)。切勿反复按 B 键试图跳过“幻影”文本。
  6. 频繁保存。 每 10 回合,或达成任一里程碑后立即保存。

会话模式

一个子代理(sub-agent)会话应包含以下环节:

  1. 启动模拟器服务端(若尚未运行)
  2. 检查任务状态与可用目的地
  3. 执行 20–50 回合(按需调用 navigate 与手动控制)
  4. 退出前保存当前状态
  5. 汇报进展(当前位置、等级、任务步骤、关键亮点等)

可在 /tmp/pokemon_notepad.txt 中记录笔记,以保障单次会话内的上下文连续性。

完整游戏策略参考

详见 references/game_instructions.md,其中涵盖《Pokemon Red》基础内容:移动机制、建筑交互、门的开启、战斗流程、属性相克、治疗方式以及任务系统说明。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134万人学习