私はそれがより簡単にテストできるようにMVVMデザインパターンを使用し、ダブル除去トーナメントの作成および操作することができます私のトーナメントオーガナイザーソフトウェアを、変換する過程でいます。その際、私はブラケット構造を直接操作するUIのいくつかのコードから 'モデル'を分離しています。データ構造
これは、トーナメントを処理するために作成したソフトウェアの3番目の繰り返しです。最初はPHPで書かれ、データをデータベースに保存しました。 2番目のバージョンは私が作ったWPFのバージョンで、データをメモリに格納してXMLファイルにシリアル化します。しかし、どちらのバージョンでも、私はきれいではないと感じる実装の側面があり、DRYの法律を破るように思えます。
あなたは二重の排除ブラケットを処理するために、ゼロからのデータ構造を作成していた場合は、あなたはそれをどのように行うのでしょうか?
ブラケットをアルゴリズムで自動的に生成する必要がないことに注意してください(4/8/16/32人であらかじめ作成されたダブルエリミネーションからロードすることは私が今やっている方法です)。マッチの勝者を設定し、ブラケットを通してそれらを前進させる主なユースケースです。
編集:それを明確にするために、データ構造はダブルエリミネーショントーナメントを処理する必要があるので、潜在的に、1試合の勝者は、別の敗者と対戦てしまう可能性があります。
残念ながら、それはダブルエリミネーショントーナメントを処理しません:( – FryGuy