gpt4 book ai didi

java - Android:联网情况下的随机生成(多人游戏)

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:30 25 4
gpt4 key购买 nike

我写了一个类,给定种子和难度,它将为我的游戏返回一个竞争环境。生成是一致的(无论如何,相同的种子和难度级别将始终导致相同的比赛 field )。据我所知,所有 Android 设备都使用 Java 1.6,所以这是我的问题:

在多人游戏环境中仅将种子和难度发送到其他设备是否安全?

我需要担心 Google 何时更新 Java 版本级别 1.6 吗?或者他们可能会将所有 Android 设备更新到该版本级别(我假设 Random 类将被更改)?如果不是,那么检测 Random 类是否不同的好方法是什么?

换句话来说,应该采取哪些预防措施来确保我的字段生成类大量使用的 java.util.Random 类将为每个设备带来相同的游戏环境?或者,考虑将所有比赛 field 数据发送到非托管设备是否更明智?

我可能可以通过大小为的可靠消息来完成后者:

byte[ROWS * COLUMNS]

提前,我感谢有关此事的任何指导/建议。这是一个很难搜索的问题,因此一些 future View 的链接可能是合适的。

最佳答案

这里有一些选项,但我想我希望有一些神奇的 JVM 属性来定义 java.util.Random 类修订版本。

第一个选项是检查 java 版本并将其与其他设备的版本进行比较。如果它们相同,则可以安全地假设 Random 类相同,因此可以发送种子和难度(据我所知)。但是,如果它们不同,您要么发送所有数据,要么自己检查文档/版本发行说明以查看 Random 类何时更改,然后确定是否应根据先前获取的 java 版本标识符发送所有数据。

第二个选项是始终发送所有数据。这就是我个人将要做的事情。

如果您没有我那么幸运,并且您的数据超过了 Multiplayer.MAX_RELIABLE_MESSAGE_LEN 的值(以字节为单位),您可能必须将数据分成多条消息,这可能会变得丑陋,但完全可行。

关于java - Android:联网情况下的随机生成(多人游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com