

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempio: usa una regola composta per creare una partita con giocatori con attributi simili o selezioni simili
<a name="match-examples-10"></a>

Questo esempio illustra come impostare un set di regole per le partite con due squadre che utilizzano. `compound` Nell'esempio: 
+ La `SimilarLeagueDistance` regola assicura che tutti i giocatori di una partita abbiano un `league` limite di 2 rispetto agli altri giocatori. 
+ La `SimilarSkillDistance` regola garantisce che tutti i giocatori di una partita abbiano un `skill` limite di 10 punti dagli altri giocatori. Se un giocatore ha aspettato 10 secondi, la distanza viene aumentata a 20. Se un giocatore ha aspettato 20 secondi, la distanza viene aumentata a 40. 
+ La `SameMapComparison` regola garantisce che tutti i giocatori di una partita abbiano richiesto la stessa cosa`map`. 
+ La `SameModeComparison` regola garantisce che tutti i giocatori di una partita abbiano richiesto la stessa cosa`mode`. 
+ La `CompoundRuleMatchmaker` regola garantisce una partita se almeno una delle seguenti condizioni è vera: 
  + I giocatori di una partita hanno richiesto la stessa `map` e la stessa cosa`mode`.
  + I giocatori di una partita hanno `league` caratteristiche `skill` e caratteristiche simili.

```
{
    "ruleLanguageVersion": "1.0",
    "teams": [{
        "name": "red",
        "minPlayers": 10,
        "maxPlayers": 20
    }, {
        "name": "blue",
        "minPlayers": 10,
        "maxPlayers": 20
    }],
    "algorithm": {
        "strategy":"balanced",
        "balancedAttribute": "skill",
        "batchingPreference":"fastestRegion"
    },
    "playerAttributes": [{
        "name": "league",
        "type": "number"
    },{
        "name": "skill",
        "type": "number"
    },{
        "name": "map",
        "type": "string"
    },{
        "name": "mode",
        "type": "string"
    }],
    "rules": [{
        "name": "SimilarLeagueDistance",
        "type": "distance",
        "measurements": ["max(flatten(teams[*].players.attributes[league]))"],
        "referenceValue": "min(flatten(teams[*].players.attributes[league]))",
        "maxDistance": 2
    }, {
        "name": "SimilarSkillDistance",
        "type": "distance",
        "measurements": ["max(flatten(teams[*].players.attributes[skill]))"],
        "referenceValue": "min(flatten(teams[*].players.attributes[skill]))",
        "maxDistance": 10
    }, {
        "name": "SameMapComparison",
        "type": "comparison",
        "operation": "=",
        "measurements": ["flatten(teams[*].players.attributes[map])"]
    }, {
        "name": "SameModeComparison",
        "type": "comparison",
        "operation": "=",
        "measurements": ["flatten(teams[*].players.attributes[mode])"]
    }, {
        "name": "CompoundRuleMatchmaker",
        "type": "compound",
        "statement": "or(and(SameMapComparison, SameModeComparison), and(SimilarSkillDistance, SimilarLeagueDistance))"
    }],
    "expansions": [{
        "target": "rules[SimilarSkillDistance].maxDistance",
        "steps": [{
            "waitTimeSeconds": 10,
            "value": 20
        }, {
            "waitTimeSeconds": 20,
            "value": 40
        }]
    }]
}
```