FlexMatch屬性表示式 - Amazon GameLift

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

FlexMatch屬性表示式

性質表示式可用於定義某些相符項目相關的性質。它們允許您在定義屬性值時使用計算和邏輯。屬性運算式通常會產生以下兩種形式之一:

  • 個人玩家數據。

  • 個別玩家資料的計算收集。

常見的配對屬性表示式

屬性表達式可識別玩家、團隊或比賽的特定值。以下部分表達式說明了如何辨識團隊和玩家:

目標 Input 意義 輸出
辨識配對中的特定團隊: teams[red] 紅隊 團隊
若要識別比賽中的一組特定隊伍: teams[red,blue] 红队和蓝队 List<Team>
辨識配對中的所有團隊: teams[*] 所有團隊 List<Team>
辨識特定團隊中的玩家: team[red].players 紅隊中的玩家 List<Player>
在一場比賽中識別一組特定隊伍中的球員: team[red,blue].players 配對的玩家,依照團隊分組 List<List<Player>>
辨識配對中的玩家: team[*].players 配對的玩家,依照團隊分組 List<List<Player>>

屬性表示式範例

下表說明基於先前範例建置的一些屬性運算式:

表達式 意義 結果類型

teams[red].players[playerId]

紅隊所有玩家的玩家 ID List<string>
teams[red].players.attributes[skill] 紅隊所有玩家的「技能」屬性 List<number>
teams[red,blue].players.attributes[skill] 紅隊和藍隊中所有球員的「技能」屬性,按隊伍分組 List<List<number>>
teams[*].players.attributes[skill] 配對的所有玩家的「技能」屬性 (依照團隊分組) List<List<number>>

屬性運算式彙總

屬性表達式可用於使用以下函式或組合函式來整合團隊資料:

聚合 Input 意義 輸出
min List<number> 取得列表中所有數字的最小值。 數字
max List<number> 取得列表中所有數字的最大值。 數字
avg List<number> 取得列表中所有數字的平均值。 數字
median List<number> 取得列表中所有數字的中間值。 數字
sum List<number> 取得列表中所有數字的總和。 數字
count List<?> 取得列表中所有元素的數量。 數字
stddev List<number> 取得列表中所有數字的標準差。 數字
flatten List<List<?>> 將嵌套清單的集合變成包含所有元素的單一清單。 List<?>
set_intersection List<List<string>> 取得在集合的所有字串清單中找到的字串清單。 List<string>
以上全部 List<List<?>> 對嵌套列表的所有操作會對每個子列表執行一次以產生結果列表。 List<?>

下表說明使用彙總函式的部分有效屬性表達式:

表達式 意義 結果類型
flatten(teams[*].players.attributes[skill]) 配對的所有玩家的「技能」屬性 (未分組) List<number>
avg(teams[red].players.attributes[skill]) 紅隊玩家的平均技能 數字
平均(球隊 [*]. 玩家. 屬性 [技能]) 配對中的每個團隊的平均技能 List<number>
avg(flatten(teams[*].players.attributes[skill])) 配對中的所有玩家的平均技能級別。此表達式取得玩家技能的展平列表,然後計算它們的平均值。 數字
count(teams[red].players) 紅隊玩家的數量 數字
count (teams[*].players) 配對中的每個團隊的玩家數量 List<number>
max(avg(teams[*].players.attributes[skill])) 配對中的最高團隊技能級別 數字