多种语言中的随机数

时间:2016-11-15 02:17:42

标签: java android ios swift random

我试图制作一个游戏,其中两个玩家参与战斗并按下屏幕上的按钮以对彼此造成伤害。角色可以处理的伤害应该是1到10之间的随机数。攻击角色接收的伤害应该是相同的随机数。

游戏可在Android和iOS(Java和Swift)上播放,但我如何确保为所造成的伤害和受到的伤害生成相同的随机数?我意识到我可以发送给受攻击玩家造成的伤害,并从他们的健康状况中扣除该数额,但我想知道是否有办法在Java和Swift中生成相同的随机数序列,这样我就不会这样做了。必须通过服务器。

2 个答案:

答案 0 :(得分:1)

您可以让每个对等方都是客户端和服务器。这称为对等网络。但是,您必须确保客户端不被黑客入侵。这可能很难实现。这是一个艰难的局面,小型服务器将是最好的方式。

(P.S。最好的语言很可能是Haxe。我之前使用过这种语言)

......实际上,我考虑过它,你可以在同伴之间共享一个随机种子。你可以计算双方对两方的伤害,以确保它是有效的。

编辑: 根据文档,Haxe的Math.random()似乎在具有给定种子的平台上是相同的。它可以编译为iOS和Android代码,以及其他平台。

答案 1 :(得分:1)

你应该为此编写自己的课程。使用两种语言的内置随机数生成器并不能保证这一点。但是,您可以编写确保这一点的自定义逻辑。

例如,您可能会得到一个介于0和1之间的100,000个随机数的列表。您可以将该列表保存为文本文件,并从两个项目中引用它。

以上是您可以解决问题的最接近的方法,而不会让两个客户端相互通信。既然你要求的解决方案没有使用服务器,这就是我的答案。但是,在这里使用服务器或其他形式的网络通信似乎是正确的答案。