- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在转换我的 Tournament Organizer 软件,该软件允许创建和操作双败淘汰赛,以使用 MVVM 设计模式,以便可以更轻松地对其进行测试。这样做时,我将“模型”与 UI 中直接操作括号结构的一些代码分开。
这将是我为处理锦标赛而编写的软件的第三次迭代。第一个是用 PHP 编写的,并将数据存储在数据库中。第二个版本是我做的WPF版本,它将数据存储在内存中,然后序列化为一个XML文件。然而,在这两个版本中,我觉得有些实现方面并不干净,而且它们似乎违反了 DRY 法则。
如果您要从头开始创建一个数据结构来处理双重消除括号,您会怎么做?
请注意,它不需要能够通过算法自动生成括号(我现在正在使用 4/8/16/32 人的预制双淘汰加载),只是设置比赛获胜者并通过括号“推进”他们的主要用例。
编辑:为了清楚起见,数据结构需要处理双败淘汰赛,因此一场比赛的获胜者可能最终会与另一场比赛的失败者竞争。
最佳答案
因此,在终点处,您有 64 个团队。因此,不知何故,有 64 个团队的集合。
但他们是配对的,每对都有一个赢家。在中间的括号中,获胜者实际上是从括号中出现的,所以我认为您的括号对象实际上看起来像:
public class Bracket
{
Team winner; //if this is null or whatever, then we don't have a winner yet
Bracket topBracket;
Bracket bottomBracket;
}
...当您实例化您的目标时,您只需将两个子括号留空,只有一个获胜者。
为了处理双败淘汰赛,还有第二个败者组。如果您可以自动处理将失败者添加到该组别中(设计一个以 32 开头的组别,谁打到 16,添加第 2 轮获胜者组别中的 16 名失败者,等等),那就太好了,但这就是全部实现。数据结构不需要更改以适应这种情况,您只需要更多。
关于c# - 双败赛数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/589858/
我是一名优秀的程序员,十分优秀!