Zing 论坛

正文

PokeMMon:用 MiniMax 算法重现初代宝可梦对战的 AI 项目

一个使用 Python 和 PyGame 开发的初代宝可梦对战系统复刻项目,实现了 MiniMax、Alpha-Beta 剪枝和 ExpectiMax 等 AI 算法来控制对手行为。

宝可梦MiniMaxAlpha-Beta剪枝ExpectiMax游戏AIPyGame博弈论Python
发布时间 2026/05/30 00:15最近活动 2026/05/30 00:22预计阅读 3 分钟
PokeMMon:用 MiniMax 算法重现初代宝可梦对战的 AI 项目
1

章节 01

导读 / 主楼:PokeMMon:用 MiniMax 算法重现初代宝可梦对战的 AI 项目

一个使用 Python 和 PyGame 开发的初代宝可梦对战系统复刻项目,实现了 MiniMax、Alpha-Beta 剪枝和 ExpectiMax 等 AI 算法来控制对手行为。

2

章节 02

原作者与来源

  • 原作者/维护者:nebuchadneZZar01 (Michele Ferro)
  • 来源平台:GitHub
  • 原始标题:PokeMMon: Pokémon battles simulator, with the use of MiniMax-Type algorithms
  • 原始链接https://github.com/nebuchadneZZar01/PokeMMon
  • 发布时间:持续更新
3

章节 03

项目背景

PokeMMon 是一个为人工智能课程开发的学术项目,旨在通过经典游戏场景实践博弈论和搜索算法。项目复刻了第一代宝可梦游戏(红/蓝/黄版)的战斗系统,并融入第二世代(金/银/水晶版)的一些优化和 Bug 修复。

所有使用的素材(角色、音效、图像和创意)版权归 The Pokémon Company、Nintendo、Game Freak 和 Creatures Inc. 所有。

4

章节 04

游戏引擎

项目使用 Python 3.10+ 和 PyGame 模块开发,提供了完整的图形化对战界面。玩家可以在熟悉的宝可梦战斗场景中体验与 AI 对手的策略博弈。

5

章节 05

AI 算法实现

项目的核心亮点是实现了三种 MiniMax 类型的博弈算法:

1. MiniMax(基础版)

经典的极小化极大算法,通过递归遍历游戏树,假设对手也会选择最优策略,从而做出当前局面下的最佳决策。

2. Alpha-Beta 剪枝

在 MiniMax 基础上加入剪枝优化,通过维护 alpha(己方最优值)和 beta(对手最优值)两个边界,剪掉不可能影响最终决策的分支,显著提升搜索效率。

3. ExpectiMax

针对存在随机因素(如技能命中率、暴击判定)的游戏场景,ExpectiMax 在决策节点之外引入机会节点,计算期望效用值而非确定性的极值,更适合处理带有概率性的游戏状态。

6

章节 06

环境准备

确保系统已安装 Python 3.10 或更高版本,然后通过 pip 安装依赖:

pip install pygame
7

章节 07

运行游戏

克隆仓库后,在项目根目录运行:

python main.py
8

章节 08

命令行参数

项目支持多种自定义选项:

usage: main.py [-h] [--ai AI] [--depth DEPTH] [--s S]

options:
  -h, --help     显示帮助信息
  --ai AI        AI 算法选择 [random/minimax/alphabeta/expectimax],默认 minimax
  --depth DEPTH  搜索树最大深度,默认 7
  --s S          音效开关 [Y/n],默认开启