Skip to content

AlanRuskin6/LLMvsZ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 LLMvsZ: 大语言模型驱动的植物大战僵尸自动化

Python Version License LLM Support

LLMvsZ 是一个利用大语言模型(LLM)来玩《植物大战僵尸》(PVZ)的自动化项目。与传统的基于规则或启发式算法的 AI 不同,LLMvsZ 将游戏状态编码为自然语言描述,并利用 LLM 的推理能力来做出战略性的种植决策。


✨ 核心特性

  • 双循环异步架构:
    • ⚡ 快速循环 (20ms): 负责实时读取内存状态、执行动作以及处理紧急情况(如僵尸进家)。
    • 🧠 LLM 决策循环 (0.8s - 2s): 负责将复杂的战场状态发送给 LLM,并解析其返回的战略决策。
  • 智能状态编码: 将僵尸位置、植物布局、阳光数量和卡槽状态转化为精简的 Prompt。
  • 多级防御机制: 包含 EmergencyHandlerEnhancedReflex 层,在 LLM 响应延迟时自动处理即时威胁。
  • 内存直接交互: 通过 ProcessAttacherAsmInjector 直接与游戏进程通信,实现毫秒级的读取与操作。
  • 延迟补偿: 内置 AdaptivePredictor,根据 LLM 响应延迟自动预测僵尸未来的位置,确保决策的超前性。

🤖 支持的 LLM 供应商

目前项目原生支持以下供应商,可在 llm/config.py 中配置:

供应商 模型 优势
DeepSeek deepseek-chat (V3) 官方原生支持,推理能力强
SiliconFlow (硅基流动) deepseek-ai/DeepSeek-V3 国内访问速度快,延迟低

📂 项目结构

LLMvsZ/
├── llm/          # 核心逻辑:Prompt 生成、客户端、响应解析、决策验证
├── game/         # 游戏对象模型:植物、僵尸、网格、状态管理
├── memory/       # 内存工具:进程附加、读写器、汇编注入器
├── judge/        # 裁判系统:碰撞预测、伤害计算、威胁评估
├── engine/       # 动作执行引擎
├── data/         # 游戏数据:植物/僵尸属性、内存偏移量
└── main.py       # 项目启动入口

🚀 快速开始

1. 环境要求

  • Windows 操作系统
  • Python 3.8+
  • 正在运行的《植物大战僵尸》游戏进程 (原版/年度版)

2. 安装依赖

pip install -r requirements.txt

3. 配置 API Key

llm/config.py 中填入您的 API Key,或通过命令行参数传入:

# llm/config.py
api_key: str = "您的_API_KEY"
provider: LLMProvider = LLMProvider.SILICONFLOW

4. 运行项目

python main.py --api-key YOUR_API_KEY --provider siliconflow

🛠️ 决策流程

  1. 状态编码 (State Encoding): StateEncoder 扫描内存,生成战场的文本描述。
  2. 延迟预测 (Prediction): AdaptivePredictor 根据历史延迟预测 LLM 响应时的僵尸位置。
  3. Prompt 构建: 结合系统提示词和预测状态,构建请求。
  4. LLM 推理: 调用 DeepSeek/SiliconFlow 获取下一步动作。
  5. 动作验证 (Validation): ActionValidator 确保动作合法(阳光足够、冷却完成)。
  6. 执行 (Execution): MemoryWriter 将指令注入游戏。

📄 许可证

本项目采用 MIT LICENSE 许可。