Double Elimination Tournaments の作成と操作を可能にする Tournament Organizer ソフトウェアを MVVM デザイン パターンを使用するように変換して、より簡単にテストできるようにしています。そうすることで、ブラケット構造を直接操作する UI の一部のコードから「モデル」を分離しています。
これは、私がトーナメントを処理するために作成したソフトウェアの 3 回目の繰り返しになります。1 つ目は PHP で作成され、データをデータベースに格納しました。2 番目のバージョンは、私が作成した WPF バージョンで、データをメモリに格納し、XML ファイルにシリアル化します。ただし、どちらのバージョンでも、クリーンではないと感じる実装の側面があり、DRY の法則に違反しているように見えます。
二重消去ブラケットを処理するためにゼロからデータ構造を作成する場合、どのようにしますか?
ブラケットをアルゴリズム的に自動的に生成できる必要はないことに注意してください (4/8/16/32 人の事前作成されたダブルエリミネーションからのロードは、私が現在行っている方法です)、主なユースケースだけです。試合の勝者を設定し、ブラケットを通じてそれらを「進める」こと。
編集: 明確にするために、データ構造はダブル エリミネーション トーナメントを処理する必要があるため、ある試合の勝者が別の試合の敗者と競合する可能性があります。