1

自動サッカーリーグジェネレーターを作成していて、スケジュールどおりに行き詰まりました。すべてを生成するためのアルゴリズムがありますが、スケジュールはありません。見てください:

[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&BLUEチームに入れることです。

つまり:

  • 片側の1つのチーム(青または赤)は最大2回プレイできます。
  • 1ラウンドの1チームは、1ラウンドで$totalTours/2ゲームをプレイする必要があります。

たとえば、9つのチームがある場合、第1ラウンドでは、チームはREDで4つのツアー(連続ではなく合計)をプレイし、BLUEで5つのツアーをプレイする必要があります。第2ラウンドでは、REDで5ツアー、BLUEで4ツアーをプレイする必要があります。

チームが100ある場合でも、アルゴリズムは機能する必要があります。

4

2 に答える 2

1

フィクスチャのセットを構築するには、すべてのチームが互いに正確に 1 回対戦する必要があります。

これを行う適切な方法は、単一の固定要素の周りで要素を「回転」させることです。

数字の 1 を修正するには、次のことを行う必要があります

ラウンドワンは

 1 2 3 4 5 
 v v v v v
10 9 8 7 6

ラウンド2は

 1 10 2 3 4
 v  v v v v 
 9  8 7 6 5

ラウンド3は

 1 9 10 2 3
 v v  v v v 
 8 7  6 5 4

というように、数字が一周するまで続けます。

このアプローチを使用して、JavaScript で一連のフィクスチャを作成しました: https://jsfiddle.net/jonwinstanley/9dfLm8nq/97/

于 2021-08-31T22:37:07.747 に答える