我正在转换我的 Tournament Organizer 软件,该软件允许创建和操作双淘汰赛,以使用 MVVM 设计模式,以便可以更轻松地对其进行测试。在这样做的过程中,我将“模型”与直接操纵括号结构的 UI 中的一些代码分开。
这将是我为处理锦标赛而编写的第三次迭代软件。第一个是用 PHP 编写的,并将数据存储在数据库中。第二个版本是我做的WPF版本,它把数据存储在内存中,然后序列化成一个XML文件。然而,在这两个版本中,我觉得在实现的某些方面并不干净,并且似乎违反了 DRY 法则。
如果你从头开始创建一个数据结构来处理双重消除括号,你会怎么做?
请注意,它不需要能够通过算法自动生成括号(从预先制作的 4/8/16/32 人的双重淘汰加载是我现在的做法),只是主要用例设置比赛的获胜者并通过括号“推进”他们。
编辑:为了清楚起见,数据结构需要处理双淘汰赛,因此潜在地,一场比赛的获胜者可能最终与另一场比赛的失败者竞争。