2

我正在尝试根据他们选择的标准自动匹配玩家。为简单起见,玩家可以被评为 1、2 或 3 级。如果玩家是3级,只想和其他3级对手交手,这是怎么做到的?我从谷歌的教程和参考资料中逐页阅读。它指出位掩码可用于设置标准。在我的试验中,我只能在他们的位掩码是 2 的补码时才能匹配玩家,如谷歌文档中所述。

ExclusiveBitMask - 自动请求的专有位掩码。每对自动匹配请求的逻辑与必须为零才能进行自动匹配。如果游戏没有排他性要求,则该值应设置为 0。

因此,如果两个玩家具有相同的位掩码(即相同的标准),他们将不会被匹配。解决办法是什么?如果它们是基于 2 的补码匹配的,我该如何实现?谁得到“常规”位掩码,谁得到补码?我不明白。

我可以为用户提供创建游戏的选项:

我的水平----愿意对抗的水平

1 1 0 ---- 1 1 0 (零表示是,所以我的等级 == 1 并且只愿意玩等级 1)

以及查找游戏的选项:

比赛水平----我的水平

0 0 1 ---- 0 0 1(对战1级,我是1级)

没关系,但是 QuickGame 被枪杀了,因为...

1) 同一级别的两个人不会被匹配,如下所示:

0 0 0 ---- 0 0 1 和 0 0 0 ---- 0 0 1 (NO MATCH,既是 1 级又愿意玩任何人)

2) 或者如果 QuickGame 全部为零,它们将匹配只想玩 3 级的人,如下所示:

0 0 0 ---- 0 0 0 和 0 1 1 ---- 0 1 1 (QuickGame 玩任何人,并且只针对 3 级创建游戏级别 3 是一场比赛,这是不对的)

解决办法是什么?

4

1 回答 1

2

给一个机会你可以为不同的玩家级别创建房间public RoomConfig.Builder setVariant (int variant)
setVariant

于 2013-08-26T19:47:51.467 回答