我正在转换我的Tournament Organizer软件,它允许创建和操作Double Elimination Tournaments,使用MVVM设计模式,以便更容易测试.在这样做的时候,我将'模型'与UI中直接操作括号结构的一些代码分开.
这将是我为处理锦标赛而编写的第三次软件迭代.第一个是用PHP编写的,并将数据存储在数据库中.第二个版本是我制作的WPF版本,它将数据存储在内存中,然后将其序列化为XML文件.但是,在这两个版本中,我认为实施的各个方面都不干净,而且看起来他们违反了DRY法则.
如果您从头开始创建数据结构以处理双重消除括号,您将如何做?
请注意,它不需要能够在算法上自动生成括号(从4/8/16/32人的预制双重消除加载是我现在正在做的),只是主要的用例设置比赛的获胜者并通过括号'推进'他们.
编辑:为了说清楚,数据结构需要处理双重淘汰赛,因此,一场比赛的胜利者最终可能会与另一场比赛的输家竞争.