我想用Java实现一个扑克游戏。所以我制作了一个卡类并创建了52个卡片对象并将它们放入一个数组中。这个阵列是卡片组。
我如何随机洗牌这个对象数组?是否有内置方法或任何其他方式?
答案 0 :(得分:4)
改为使用ArrayList
并使用Collections.shuffle()
Collections.shuffle(yourListInstance);
答案 1 :(得分:0)
Collections.shuffle不够好:
使用默认的随机源随机置换指定的列表。所有排列都以大致相等的可能性发生。 对冲"大约"在前面的描述中使用了“随机性”,因为默认的随机性源仅是大约独立选择的比特的无偏源。如果它是随机选择位的完美来源,那么算法将选择具有完美均匀性的排列。
你需要一个随机源,产生一个在1到52之间均匀分布的数字! (含)。
答案 2 :(得分:0)
我已将“top answer”中的Random shuffling of an array修改为适用于<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 class="hallo">Hallo</h1>
Set the display value <input type="text" name="prop" class="prop">
<br><br>
<button class="hide" type="submit">jQuery hide()</button>
<button class="show" type="submit">jQuery show()</button>
<button class="css" type="submit">jQuery css()</button>
个对象的数组。我只是更改了Card
→int[] ar
和Card[] ar
→int a = ar[index]
Card a = ar[index]