夹具创建

时间:2012-12-24 19:32:41

标签: c# algorithm

Forming a tournament table with LINQ (Fixture List)

上的最后一篇文章开始

添加数字列表时,例如

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

当我运行代码时,数字1总是第2位。 e.g。

Round 1
9 v 1

Round 2
10 v 1

Round 3
11 v 1

我正在努力弄清楚我将如何能够修改代码,以便每个“Round”数字将从“Home”和“Away”交替出现。因此如果1是第2,那么在下一轮它将是第1。如果16在第1轮中排名第1,那么第2轮将排在第2位。

Round 1
9 v 1

Round 2
1 v 10

Round 3
11 v 1

1 个答案:

答案 0 :(得分: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
}