You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于TDD的12玩家10款桌游均匀配对分配算法设计需求

锦标赛分组算法设计(适配TDD)

核心思路

针对12名玩家、10款桌游的需求,采用固定循环移位+结构化分组的非随机算法,确保结果可预测,完美适配TDD的测试用例编写,同时满足每位玩家与其余11人至少合作一次的要求。

具体算法步骤

1. 初始基准分组(BoardGame1)

先定义可作为测试基准的初始分组:

BoardGame1 - Match1 - Player1 + Player2 + Player3
BoardGame1 - Match2 - Player4 + Player5 + Player6
BoardGame1 - Match3 - Player7 + Player8 + Player9
BoardGame1 - Match4 - Player10 + Player11 + Player12

对应玩家编号(0-11,便于计算):(0,1,2), (3,4,5), (6,7,8), (9,10,11)

2. 后续桌游的分组生成规则

对于第n款桌游(n从2到10),按以下固定逻辑生成分组:

  • 对所有玩家编号执行循环右移n-1位:比如n=2时右移1位,n=3时右移2位,以此类推
  • 移位后保持每组3人的结构,直接映射为新的对局分组
  • 可选优化:每3款桌游后,将每组内的玩家顺序反转,进一步增加合作组合的多样性

示例:BoardGame2的分组

右移1位后,玩家编号映射为:0→11, 1→0, 2→1, 3→2, 4→3, 5→4, 6→5, 7→6, 8→7, 9→8, 10→9, 11→10
对应分组输出:

BoardGame2 - Match1 - Player12 + Player1 + Player2
BoardGame2 - Match2 - Player3 + Player4 + Player5
BoardGame2 - Match3 - Player6 + Player7 + Player8
BoardGame2 - Match4 - Player9 + Player10 + Player11

3. 合作覆盖性保障

12名玩家每人需与11人合作,每款桌游中每人可获得2次合作机会,10款桌游共20次机会,远大于需求。通过固定循环移位的规则,可确保每对玩家在10轮内至少被分到同一组一次。

TDD测试用例设计

由于算法完全基于固定规则,可编写明确的可验证测试用例:

  • 基准分组验证:检查BoardGame1的分组是否与预设模板完全一致
  • 移位规则验证:检查BoardGameN的分组是否符合对应移位后的结果(比如BoardGame3对应右移2位)
  • 合作覆盖验证:选取任意1名玩家(如Player1),检查其在10款桌游中是否与其余11名玩家均有合作记录
  • 结构合法性验证:检查每款桌游的分组均为4组,每组3人,无重复玩家、无遗漏玩家

示例:BoardGame3分组(右移2位)

BoardGame3 - Match1 - Player11 + Player12 + Player1
BoardGame3 - Match2 - Player2 + Player3 + Player4
BoardGame3 - Match3 - Player5 + Player6 + Player7
BoardGame3 - Match4 - Player8 + Player9 + Player10

内容的提问来源于stack exchange,提问作者madhatterx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 03:01:23