0

LINQ(フィクスチャリスト)を使用したトーナメントテーブルの形成に関する前回の投稿から

番号のリストを追加する場合例:

var fixture = ListMatches(new List<string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" });

コードを実行すると、1番は常に2番目になります。例えば

Round 1
9 v 1

Round 2
10 v 1

Round 3
11 v 1

それぞれの「ラウンド」番号が「ホーム」と「アウェイ」から交互になるようにコードを修正する方法を見つけるのに苦労しています。したがって、1が2番目の場合、次のラウンドでは1番目になります。ラウンド1で16が1位だった場合、ラウンド2では2位になります。

Round 1
9 v 1

Round 2
1 v 10

Round 3
11 v 1
4

1 に答える 1

2

ばかげた提案かもしれませんが、偶数ラウンドでプレイするゲームの順序を切り替えることができます。

List<List<Tuple<string, string>>> fixture = 
  ListMatches(new List<string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" });

bool switchOrder = false;
foreach (round in fixture)
{
  if (switchOrder)
  {
     foreach (var tuple in round)
     {
         string temp = tuple.Item1;
         tuple.Item1 = tuple.Item2;
         tuple.Item2 = temp;
     }
  }
  switchOrder = !switchOrder
}
于 2012-12-24T19:40:14.707 に答える