Skip to content

Latest commit

 

History

History
83 lines (78 loc) · 6.05 KB

File metadata and controls

83 lines (78 loc) · 6.05 KB

image# team_Software_Engineering_project 软件工程小组github

团队名称:FW队

团队口号

拥抱变化,极速交付!

成员角色

  • 产品负责人(PO):井千惠(9109223082)
  • Scrum Master(SM):姚长钶(9109223141)
  • 开发团队(Dev Team):罗嘉乐(9109223129)

以下是改项目的配置以及使用方法

更新项目README文件,补充系统架构图、本地开发环境搭建步骤、核心业务模块职责说明,确保新成员仅凭该README即可完成环境搭建和代码理解,更新后的README完整内容如下:

项目简介

本项目是一款基于C++开发的宝可梦文字冒险(MUD)游戏引擎,实现了地图探索、野生精灵遭遇、回合制战斗、队伍管理等核心功能。项目经过多轮重构,采用模块化设计,逐步提升代码可维护性,支持多人协作开发和后续功能扩展。

系统架构图(模块关系)

架构概述

项目采用模块化设计,核心分为5个核心控制模块,各模块职责清晰、边界明确,通过接口调用实现协同工作,整体架构如下: 【系统架构图占位:此处插入模块关系图,核心模块及关系如下】

  • 核心调度层:Game类 → 负责统筹所有模块,实现主循环、命令分发、模块协同;
  • 业务模块层:Map(地图)、Battle(战斗)、TeamView(队伍管理) → 封装各自核心业务逻辑;
  • 数据层:Player(玩家)、Pokemon(精灵) → 存储核心数据,提供数据操作接口。

模块关系说明

  • Game类依赖Map、Battle、TeamView模块,通过调用各模块接口实现游戏流程调度;
  • Battle、TeamView模块依赖Player模块,通过Player提供的接口操作玩家数据(队伍、道具等);
  • Map模块独立负责地图数据管理和移动逻辑,不直接依赖其他业务模块,仅通过接口向Game类返回移动结果和遭遇判定。

本地开发环境搭建步骤

环境要求

  • 操作系统:Windows 10及以上(当前代码暂依赖Windows平台,后续将逐步支持跨平台);
  • 开发工具:Visual Studio 2022(推荐)或其他支持C++11及以上标准的编译器;
  • 依赖工具:Git(代码版本控制)、CMake(项目构建)。

搭建步骤

  1. 1. 克隆代码仓库

  2. 2. 安装开发工具与依赖

  3. 3. 构建项目

  4. 4. 运行与测试

常见问题解决

  • 编译失败:检查Visual Studio是否安装“使用C++的桌面开发”组件,确保CMake配置正确,代码无语法错误;
  • 运行时乱码:代码已配置Windows控制台编码,若仍出现乱码,重启Visual Studio或重新生成解决方案;
  • 测试无法运行:确保单元测试项目PokemonTestsNative已正确生成,且测试方法无语法错误。

核心业务模块职责说明

项目核心分为5个控制模块,各模块职责清晰,具体说明如下:

  1. Game类(核心调度模块) 核心职责:游戏主循环管理、顶层命令解析与分发、各模块协同调度,是整个游戏引擎的入口和核心枢纽。
  • 启动游戏,初始化各模块(Map、Player等);
  • 解析玩家输入的命令(移动、战斗、队伍查看等),分发至对应模块处理;
  • 触发地图移动、野生精灵遭遇,启动战斗流程;
  • 维护游戏整体运行状态,确保各模块协同工作。
  1. Map类(地图模块) 核心职责:地图数据管理、玩家移动逻辑、野生精灵遭遇判定,封装所有与地图相关的功能。
  • 存储地图数据(各地点信息、可移动方向、野生精灵列表等);
  • 提供Map::tryMove()方法,判定玩家移动合法性,更新玩家当前位置;
  • 提供Map::shouldEncounter()方法,按概率判定是否触发野生精灵遭遇;
  • 展示当前位置信息、可移动方向等。
  1. Battle类(战斗模块) 核心职责:回合制战斗流程控制、伤害计算、精灵捕捉、逃跑判定等,封装所有战斗相关逻辑。
  • 启动战斗,初始化战斗双方(玩家精灵、野生精灵)状态;
  • 通过Battle::run()方法管理战斗主循环,交替执行玩家回合与敌方回合;
  • 提供Battle::calculateDamage()方法,计算攻击伤害(含属性克制、本系加成);
  • 处理精灵捕捉、逃跑、治疗、精灵更换等操作,判定战斗结束条件。
  1. TeamView类(队伍管理模块) 核心职责:玩家队伍、仓库、背包的交互管理,提供后勤操作功能。
  • 展示玩家队伍精灵、仓库精灵、背包物品信息;
  • 处理精灵排序、精灵存入/取出仓库等操作;
  • 提供物品使用功能,为精灵恢复HP等状态;
  • 接收玩家操作命令,更新玩家队伍和背包数据。
  1. Player类(玩家数据模块) 核心职责:存储玩家核心数据,提供数据操作接口,为其他模块提供数据支撑。
  • 存储玩家队伍(team)、仓库(storage)、精灵球(pokeballs)、物品(items)等核心数据;
  • 提供数据操作接口(如获取精灵球数量、扣减精灵球、使用物品等),供Battle、TeamView等模块调用;
  • 维护玩家基本状态,确保数据的一致性和安全性(后续将进一步加强封装)。

开发规范

  • 分支管理:遵循GitFlow规范,所有开发工作在feature/*分支进行,PR提交前需反向同步主干,完成冲突预解决;
  • 代码规范:统一使用4空格缩进,核心函数需添加注释,避免冗余代码;
  • 测试规范:新增功能需补充单元测试,确保测试覆盖核心逻辑,提交代码前需通过本地测试。

后续迭代计划

  1. 改进可测试性:分离I/O与业务逻辑,补充更多单元测试,提升测试覆盖率;
  2. 提升可移植性:消除Windows平台依赖,实现跨平台编译和运行;
  3. 加强代码封装:优化Player类封装,禁止外部模块直接访问核心数据;
  4. 扩展功能:新增NPC交互、任务系统、存档读档等功能,丰富游戏玩法。