我正在制作一个自动足球联赛生成器,但卡在了时间表上。我有一个生成一切的算法,但没有时间表。看看:
[tour-id] => Array
(
[playing-day] => 2013-03-07
[tour (tour-id+1)] => 9
[game-id] => Array
(
[blue team-id] => 13
[red team-id] => 10
)
例如:
[8] => Array
(
[playday] => 2013-03-07
[tour] => 9
[0] => Array
(
[blue] => 13
[red] => 10
)
[1] => Array
(
[red] => 15
[blue] => 12
)
[2] => Array
(
[blue] => 6
[red] => 11
)
现在,当我得到所有这些数据时,我可以使用一些foreach()
来获取我需要的东西。但是-我想要的是将团队放入RED
我的意思是:
$总计图尔/2
游戏。例如,如果有9支球队,在第一轮中,一支球队必须以红色进行4次巡回赛(总计,不连续),以蓝色进行5次巡回赛。在第二轮中,它必须以红色进行5次巡回赛,以蓝色进行4次巡回赛。
即使有100个团队,算法也必须奏效。
为了建立一套固定装置,你需要每支球队精确地互相比赛一次。
一个体面的方法是围绕单个固定元素“旋转”元素。
修复数字1,我们需要
第一回合是
1 2 3 4 5
v v v v v
10 9 8 7 6
第二回合将是
1 10 2 3 4
v v v v v
9 8 7 6 5
第三轮将是
1 9 10 2 3
v v v v v
8 7 6 5 4
以此类推,直到数字一直旋转。
我使用这种方法在JavaScript中构建了一组夹具:https://jsfiddle.net/jonwinstanley/9dfLm8nq/97/
我认为你应该检查循环锦标赛-算法。通过这种方式,您可以轻松安排您的锦标赛,并且地点将成为可选的。当到达时间时,您可以将位置home
或away