Files
OnlineRpg/验收标准.md
ChuXun e287aadd3c 1
2025-10-26 16:37:22 +08:00

2.8 KiB
Raw Permalink Blame History

项目验收标准 (Checklist)

以下清单用于验证项目是否满足《C++程序设计》结课作业的核心要求。

1. 功能验收

  • [ ] UC-01 (账户):可以成功注册新用户,数据库 Users 表中出现新纪录。
  • [ ] UC-01 (账户):可以使用已注册的账户成功登录。
  • [ ] UC-02 (大厅)客户端A 在大厅发送消息客户端B、C (均在大厅) 能收到。
  • [ ] UC-02 (大厅):客户端可以正确获取在线玩家列表。
  • [ ] UC-03 (邀请)客户端A 邀请 BB 收到提示并能接受或拒绝。
  • [ ] UC-04 (战斗)A 和 B 进入战斗后,不再收到大厅聊天。
  • [ ] UC-04 (战斗)战斗逻辑在服务器端正确执行e.g., A 攻击 BB 的 HP 减少)。
  • [ ] UC-04 (战斗):客户端能正确收发战报,并显示回合制提示。
  • [ ] UC-04 (战斗):一方 HP 归零后,服务器能正确宣布胜负,并将双方踢回大厅。
  • [ ] 健壮性客户端A 强行退出 (Ctrl+C),服务器能检测到,并在玩家列表中移除 A。

2. 关键技术验收 (强制)

  • [ ] 多态
    • [ ] 提供了 ICharacter 和 ISkill 抽象基类。
    • [ ] 提供了至少 2 种职业和 2 种技能的派生类。
    • [ ] BattleRoom 仅通过 ICharacter* 和 ISkill* (基类指针) 来执行战斗逻辑。
  • [ ] STL
    • [ ] GameServer 使用 std::map 管理 ClientHandler。
    • [ ] GameServer (或 ClientHandler) 使用 std::thread 为每个客户端创建了线程。
    • [ ] GameLobby 和 BattleRoom 在访问共享数据(如 map, 战斗状态)时,使用了 std::mutex。
    • [ ] BattleRoom 使用 std::vector + <algorithm> (std::sort) 来管理行动顺序。
  • [ ] 模板 + 链表
    • [ ] 提供了 HistoryLog.h 文件。
    • [ ] 该文件手写实现了泛型的 Node<T> 结构体。
    • [ ] 该文件手写实现了泛型类 HistoryLog<T>。
    • [ ] HistoryLog<T> 必须使用 Node<T>* (链表) 作为其底层数据结构,而不是 std::list 或 std::vector。
    • [ ] BattleRoom 成功实例化并使用了 HistoryLog<string>。
  • [ ] 网络编程
    • [ ] 提供了 SocketWrapper (或等效) 类来封装原生 Socket API。
    • [ ] 服务器实现了 bind, listen, accept 的 C/S 模型。
    • [ ] 客户端实现了 connect 模型。
    • [ ] 客户端使用了多线程来分别处理 send 和 recv。
  • [ ] 数据库
    • [ ] 项目集成了 sqlite3.c / sqlite3.h。
    • [ ] 提供了 Database 封装类。
    • [ ] Users 和 Characters 表已按设计创建。
    • [ ] 注册和登录功能已通过数据库 SELECT/INSERT 验证。