Как исправить этот набор правил сватовства для AWS Game Lift - PullRequest
0 голосов
/ 03 ноября 2019

Я новичок в Game Lift и пытаюсь создать набор правил для игры Jeopardy для проекта, который я создаю. Я пытаюсь применить то, что я хочу сделать для создания матчей, но я всегда, кажется, получаю эту ошибку и не могу понять для меня, что не так.

Я играю с 3 игроками, каждый из которых имеет примерно одинаковый набор навыков, поэтому, чтобы быть честным. Может кто-нибудь объяснить, что я делаю не так?

Я уже просмотрел всю документацию по Game lift, но все еще не понимаю, как работает эта часть. Приведенные ими примеры сработали, и я попытался отредактировать их по своему вкусу, но, похоже, это не сработало.

    "name": "Normal_Game",
    "ruleLanguageVersion": "1.0",
    "playerAttributes": [{
        "name": "skill",
        "type": "number",
        "default": 10
    }],
    "teams": [{
        "name": "red",
        "maxPlayers": 1,
        "minPlayers": 1
    }, {
        "name": "blue",
        "maxPlayers": 1,
        "minPlayers": 1
    },{
       "name": "green",
       "maxPlayers": 1,
       "minPlayers":1
}],
    "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[red].players)" ],
        "referenceValue": "count(teams[blue].players)",
        "operation": "=" // other operations: !=, <, <=, >, >=
        "referenceValue": "count(teams[green].players)",
        "operation": "="
    }],
    "expansions": [{
        "target": "rules[FairTeamSkill].maxDistance",
        "steps": [{
            "waitTimeSeconds": 5,
            "value": 50
        }, {
            "waitTimeSeconds": 15,
            "value": 100
        }]
    }]
}

Я проверяю это все время, ожидая, что оно примет, но это не моя ошибкасообщения продолжают появляться как это:

Rule set*
Encountered JSON parsing error: Unexpected character ('"' (code 34)): was expecting comma to separate Object entries at [Source: { "name": "Normal_Game", "ruleLanguageVersion": "1.0", "playerAttributes": [{ "name": "skill", "type": "number", "default": 10 }], "teams": [{ "name": "red", "maxPlayers": 1, "minPlayers": 1 }, { "name": "blue", "maxPlayers": 1, "minPlayers": 1 },{ "name": "green", "maxPlayers": 1, "minPlayers":1 }], "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[red].players)" ], "referenceValue": "count(teams[blue].players)", "operation": "=" // other operations: !=, <, <=, >, >= "referenceValue": "count(teams[green].players)", "operation": "=" }], "expansions": [{ "target": "rules[FairTeamSkill].maxDistance", "steps": [{ "waitTimeSeconds": 5, "value": 50 }, { "waitTimeSeconds": 15, "value": 100 }] }] }; line: 38, column: 10]

1 Ответ

0 голосов
/ 12 ноября 2019

Похоже, у вас есть эти 2:

"referenceValue": 
"operation": 

, определенные дважды в правилах EqualTeamSizes, которые могут вызвать проблемы. И пропущенная запятая после "operation": "="

{
        "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[red].players)" ],
        "referenceValue": "count(teams[blue].players)",
        "operation": "=" // other operations: !=, <, <=, >, >=
        "referenceValue": "count(teams[green].players)",
        "operation": "="
    }
...