我正在进行一项关于制作一副纸牌的java实验。到目前为止,我相信我已经设置了一个套牌,现在需要将其洗牌。我应该改变它的方式是反复(200次)从牌组中随机挑选2张牌并切换它们。我还是比较新的Java,从来没有遇到过这样的事情,所以我甚至不知道从哪里开始。
有人可以帮忙吗?
public class DeckOfCards {
答案 0 :(得分:1)
你有一系列卡片。要选择随机卡,您可以使用Random#nextInt(int)。它将在0和您传递的参数之间选择一个随机数。使用它你只需选择两张随机卡并在阵列中交换它们。
{{1}}
有一些常见的改组算法。我之前使用过Fisher-Yates Shuffle。
答案 1 :(得分:1)
我不明白你的问题。但也许你想做这样的事情(不确定) - 我在这里洗牌5次,每次我从牌组中随机拿起两张牌。
public void display() {
String[] ranks = {"Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"};
String[] suits = {"Clubs", "Diamonds", "Hearts", "Spades"};
List<String> list1=new ArrayList<>(Arrays.asList(ranks));
List<String> list2=new ArrayList<>(Arrays.asList(suits));
int times=1;
while(times<=5){
Collections.shuffle(list1);
Collections.shuffle(list2);
Random r=new Random();
int i=r.nextInt(3);
int j=r.nextInt(3);
int k=r.nextInt(12);
int m=r.nextInt(12);
System.out.println("For "+times+" time you picked up "+list1.get(k)+
" of "+list2.get(i)+" and "+list1.get(m)+ " of "+list2.get(j));
times++;
}
}
在main方法中,只需调用&#34; display&#34;功能