按随机顺序对数组列表进行排序

Shi*_*sha 3 java collections arraylist

我正在编写一个纸牌游戏,我有一张ArrayList持有卡 ( Object),其中每张都有其 id。

由于我想让这个游戏支持多人游戏模式,因此我必须以某种方式在两个玩家之间发送/接收游戏进度。

现在,如果我在一侧洗牌,我必须在另一侧做同样的事情,但这将是一个大数据包要发送,因为每张牌都有一个图像。

我的想法是发送一个打乱列表的整数数组,这样它就会在另一端被接收并按照整数数组重新排序。

如何发送已打乱的订单并在另一边应用?

Hen*_*sen 5

该类Random可以用于此目的。

如果使用相同的种子创建两个 Random 实例,并且对每个实例进行相同的方法调用序列,则它们将生成并返回相同的数字序列。为了保证这个属性,为 Random 类指定了特定的算法。为了 Java 代码的绝对可移植性,Java 实现必须使用此处所示的 Random 类的所有算法。

这意味着您只能将种子值传输到客户端,Random使用它实例化一个新实例,并期望收到与其他玩家机器上相同的随机数序列。

Collections.shuffle可以通过源调用Random