开头先直接上链接
app-9nk0bntbpdkx.appmiaoda.com/
过年期间除了和家人团聚,其余的时间都是和家里的朋友们“上号”。
但是家里的朋友太多了,5个人完全不够。于是,我们就提议,不如打内战吧。
可打内战就会有一个问题,谁都想要和段位高的一伙。这样如何分配就成了问题
那作为程序员肯定不能容忍这种情况发生吧,那不如就搞一个匹配模拟器吧。
但是,大过年的我总不能手搓一个吧。我第一个想到的就是用AI智能体,百度的“秒哒”就是一个很好的选择。
接下来,直接展示我不断迭代后的需求文档。
王者荣耀5v5内战匹配系统需求文档
1. 应用概述
1.1 应用名称
浪荡的最公平匹配模拟器
1.2 应用描述
一个专为王者荣耀5v5内战设计的在线匹配系统,支持房主创建房间、人员名单管理、组队绑定、分路匹配、匹配记录管理等功能。系统提供清晰的命令行交互界面,确保每次匹配结果完全随机(遵守绑定规则),并可记录和查询历史对局信息。
2. 核心功能
2.1 房间管理功能
- 房主创建房间:生成唯一房间号
- 用户加入房间:输入房间号后方可进入房间
- 房主权限:仅房主可执行匹配操作
- 房间内可见性:只有进入房间的用户才能看见和输入信息
2.2 人员管理功能
- 添加人员:支持输入人员姓名添加到参与名单
- 删除人员:支持删除名单中的指定人员
- 修改人员:支持修改名单中人员的信息
- 查询名单:展示当前所有参与人员列表
- 支持对参与玩家进行增、删、改、查操作
- 参与人数无限制,超过10人时多余人员自动划入观战区
2.3 组队绑定机制
- 支持玩家自主选择绑定,每组最多绑定3人
- 绑定规则:绑定的玩家在下次匹配时必须被分配到同一支队伍(红队/蓝队二选一)
- 支持添加绑定
- 支持查看当前绑定关系
- 支持删除指定绑定
2.4 分路匹配功能
- 预设分路:上路、打野、中路、下路、辅助,每位玩家可设置/修改自己的分路
- 分路配色规则(终端输出时区分颜色):
-
- 上路:红色
- 打野:黄色/金色
- 中路:蓝色
- 下路:绿色
- 辅助:紫色
- 两种匹配模式可选:
-
- ① 带分路匹配(核心规则):
-
-
- 优先保证每支队伍的分路完整性,同一分路有多名玩家时随机分配
- 绑定玩家需优先保证同队,再按分路规则调整
- 输出结果时,显示玩家+对应颜色的分路(如:李白(🟡打野))
-
-
- ② 纯随机匹配:
-
-
- 不考虑分路,仅随机分配队伍(遵守绑定规则)
- 输出结果时隐藏分路信息,仅显示玩家名称(如:李白)
-
- 匹配失败时,输出具体异常原因(如:匹配失败:打野分路仅1人,无法满足两队分路需求)
2.5 动态人数匹配逻辑
- 废弃固定5v5验证逻辑,替换为动态人数分配:
-
- 动态确定上场人数:
let playingCount = Math.min(players.length, 10);
if (players.length === 9) {
playingCount = 9; // 9人时4+5分配
} - 计算队伍大小:
const teamSize = Math.floor(selectedPlayers.length / 2);
const hasExtraPlayer = selectedPlayers.length % 2 === 1; - 动态检查队伍容量:
const maxTeamSize = targetTeam === redTeam && hasExtraPlayer ? teamSize + 1 : teamSize; - 验证结果:
if (redTeam.length + blueTeam.length !== selectedPlayers.length) {
// 分配失败,重新尝试匹配
}
- 动态确定上场人数:
- 支持8-12人全场景动态分配:
-
- 8人:4v4(剩余0人观战)
- 9人:4v5(剩余0人观战)
- 10人:5v5(剩余0人观战)
- 11人:5v5(剩余1人观战)
- 12人:5v5(剩余2人观战)
- 人数分配失败时,输出具体异常原因(如:匹配失败:队伍人数总和与上场人数不符)
2.6 匹配记录管理
- 每次匹配完成后,可自定义为该次对局记录命名(如:2026-02-16 晚间内战)
- 手动录入该次对局的胜负结果(红队胜/蓝队胜)
- 记录完整内容:对局名称、红队成员(带分路/纯名称,按匹配模式)、蓝队成员(同上)、观战区成员、绑定关系、胜负结果
- 记录操作(增/删)失败时,输出具体异常原因(如:删除失败:该记录不存在)
- 支持查看所有历史记录
- 支持删除单条指定记录
- 支持清空全部记录
2.7 交互功能
- 提供清晰的命令行菜单交互
- 操作流程符合用户直觉
- 输入输出需友好,结果展示清晰
- 采用清晰的命令行菜单交互,操作流程符合用户直觉
3. 功能说明
3.1 房间管理
- 房主创建房间并生成房间号
- 用户通过房间号加入房间后才能查看和输入信息
- 只有房主具有匹配权限
- 房间内信息共享
3.2 人员管理
- 支持增删改查操作
- 参与人数无限制,超过10人时多余人员自动划入观战区
3.3 绑定规则
- 支持玩家自主绑定,每组最多3人
- 绑定的玩家在下次匹配时必须在同一支队伍
- 支持绑定管理操作
3.4 匹配规则
- 支持带分路匹配和纯随机匹配两种模式
- 动态确定上场人数和队伍分配
- 保证匹配结果完全随机(遵守绑定规则)
- 匹配失败时输出具体原因
3.5 结果展示
- 带分路匹配时显示玩家+分路颜色
- 纯随机匹配时仅显示玩家名称
- 区分显示红队成员、蓝队成员、观战区成员
- 展示清晰,便于查看
3.6 记录管理
- 支持对局命名和胜负录入
- 记录完整对局信息(按匹配模式决定是否包含分路)
- 支持历史记录查询、删除、清空
- 操作失败时输出具体异常原因
4. 代码要求
- 代码模块化设计(按功能拆分函数)
- 添加详细注释
- 完善的异常处理(如输入非数字、操作不存在的玩家/记录等)
- 代码可直接运行,无需额外依赖
- 数据临时存储在内存中(单次运行有效)
最后,经过工作半年来的磨练,我对技术有了新的理解。我认为技术不单单可以用来换一份工作,更可以为我们的生活添姿加彩。如今,更是迎来了AI时代,有了AI的加持,我们不再需要手搓一整个项目,只用不断优化的prompt就可以让AI来完成我们的需求。所以我在尝试用学到的技术,不断地一点点改变我的生活,通过这样来提升自己。