【问题标题】:Using bit mask to automatch players in Android Development在 Android 开发中使用位掩码自动匹配玩家
【发布时间】:2013-08-24 13:49:23
【问题描述】:

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

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 仅是一场比赛,这是不对的)

解决办法是什么?

【问题讨论】:

    标签: android criteria multiplayer bitmask


    【解决方案1】:

    给个机会public RoomConfig.Builder setVariant (int variant)
    使用setVariant,您可以为不同级别的玩家创建房间。

    【讨论】:

    • 我已经考虑过了。不幸的是,这行不通。一个变体只会匹配另一个变体。这对于 1 级和 1 级来说会很好。但是,我希望玩家可以选择众多级别的对手进行比赛。用户 A:级别 1、2 和 3 用户 B:级别 1 和 2。用户 A 应该匹配用户 B,但在使用变体时不能匹配。我还在寻找方法。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2014-12-22
    • 1970-01-01
    • 2019-01-21
    相关资源
    最近更新 更多