Skip to content

ColinHong10/NRC_SIM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NRC_SIM — 洛克王国战斗模拟器

基于洛克王国实际战斗机制,参考 Pokemon Showdown 的分层架构重构的战斗引擎。

项目结构

NRC_SIM/
├── sim/                      # 核心引擎
│   ├── types.py              # 枚举 + 属性克制表
│   ├── skill.py              # 技能数据模型
│   ├── pokemon.py            # 精灵数据模型
│   ├── battle_state.py       # 战斗状态容器
│   ├── damage_calc.py        # 伤害计算器(纯函数)
│   ├── counter_system.py     # 应对系统(洛克王国特色)
│   ├── battle_engine.py      # 战斗引擎主循环
│   ├── skill_db.py           # 技能数据库
│   ├── pokemon_db.py         # 精灵数据库
│   └── team_builder.py       # 队伍构建器
├── tests/
│   └── test_all.py           # 测试套件 (17 项)
├── data/
│   ├── pokemon_stats.xlsx    # 精灵六维数据
│   └── skills_all.csv        # 技能数据
├── cli.py                    # 交互式入口
└── requirements.txt

快速开始

# 安装依赖
pip install -r requirements.txt

# 运行测试
python tests/test_all.py

# 交互式对战
python cli.py

架构设计要点

参考 PS 的地方

  • 伤害计算器(damage_calc.py) 设计为纯函数,不修改任何状态
  • 模块职责清晰:类型系统、数据模型、计算逻辑、引擎流程分离
  • 战斗日志系统:记录每个动作和效果,方便调试和回放
  • 状态容器(BattleState) 支持高效 deep_copy(用于 MCTS 搜索)

洛克王国独有机制

  • 同时选择制:双方同时选择动作,按速度决定执行顺序
  • 应对系统(counter_system.py):攻击vs防御(减伤+反弹)、攻击vs状态(威力倍率)、防御vs状态
  • 层数制异常状态:中毒/灼烧按层数叠加伤害,冻结3层触发
  • 能量系统:初始10,汇合聚能+5,技能消耗各异

相比 NRC_AI 原版修复

  • 吸血不再双重触发
  • 脱离后正确 return
  • 冻结层数回合结束递减
  • 伤害计算器零副作用
  • apply_skill 重复逻辑已消除

About

洛克王国战斗模拟器 — 完整战斗引擎 + Web UI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages