

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 範例：建立兩個具有平均配對玩家的隊伍
<a name="match-examples-1"></a>

此範例說明如何利用下列的指示，設定兩個勢均力敵的玩家隊伍。
+ 建立兩個玩家隊伍。
  + 在每個隊伍中加入 4 到 8 個玩家。
  + 最終確定的隊伍必須擁有相同的玩家人數。
+ 納入玩家的技能等級 (如果未提供，預設為 10)。
+ 根據其技能等級是否類似於其他玩家的這項條件，來選擇玩家。確保兩個隊伍的玩家平均技能值落差在 10 點之內。
+ 如果未能快速地完成配對，請放寬對玩家技能的要求，以在合理的時間內完成配對。
  + 經過 5 秒之後，請展開搜尋，以允許玩家平均技能值在 50 點之內的隊伍。
  + 經過 15 秒之後，請展開搜尋，以允許玩家平均技能值在 100 點之內的隊伍。

使用此規則集的注意事項：
+ 此範例可讓隊伍的人數介於 4 到 8 名玩家之間 (雖然每個隊伍的人數必須相同)。對於人數在有效範圍內的隊伍，配對建構器會盡力嘗試，來配對最多的允許玩家人數。
+ `FairTeamSkill` 規則可確保隊伍根據玩家的技能均衡配對。為了針對每個潛在的新玩家評估此項規則，FlexMatch 會暫時性地將玩家加入隊伍，並計算平均值。如果不符規則，則不會將潛在的玩家加入配對。
+ 由於這兩個隊伍有相同結構，您可以選擇只建立一個隊伍定義，並將隊伍數量設定為「2」。在這個案例中，如果您將隊伍命名為「aliens」，則系統會對這兩個隊伍指派「aliens\$11」和「aliens\$12」名稱。

```
{
    "name": "aliens_vs_cowboys",
    "ruleLanguageVersion": "1.0",
    "playerAttributes": [{
        "name": "skill",
        "type": "number",
        "default": 10
    }],
    "teams": [{
        "name": "cowboys",
        "maxPlayers": 8,
        "minPlayers": 4
    }, {
        "name": "aliens",
        "maxPlayers": 8,
        "minPlayers": 4
    }],
    "rules": [{
        "name": "FairTeamSkill",
        "description": "The average skill of players in each team is within 10 points from the average skill of all players in the match",
        "type": "distance",
        // get skill values for players in each team and average separately to produce list of two numbers
        "measurements": [ "avg(teams[*].players.attributes[skill])" ],
        // get skill values for players in each team, flatten into a single list, and average to produce an overall average
        "referenceValue": "avg(flatten(teams[*].players.attributes[skill]))",
        "maxDistance": 10 // minDistance would achieve the opposite result
    }, {
        "name": "EqualTeamSizes",
        "description": "Only launch a game when the number of players in each team matches, e.g. 4v4, 5v5, 6v6, 7v7, 8v8",
        "type": "comparison",
        "measurements": [ "count(teams[cowboys].players)" ],
        "referenceValue": "count(teams[aliens].players)",
        "operation": "=" // other operations: !=, <, <=, >, >=
    }],
    "expansions": [{
        "target": "rules[FairTeamSkill].maxDistance",
        "steps": [{
            "waitTimeSeconds": 5,
            "value": 50
        }, {
            "waitTimeSeconds": 15,
            "value": 100
        }]
    }]
}
```