拖着甲板

时间:2015-11-18 02:22:44

标签: java methods shuffle

我正在进行一项关于制作一副纸牌的java实验。到目前为止,我相信我已经设置了一个套牌,现在需要将其洗牌。我应该改变它的方式是反复(200次)从牌组中随机挑选2张牌并切换它们。我还是比较新的Java,从来没有遇到过这样的事情,所以我甚至不知道从哪里开始。

有人可以帮忙吗?

public class DeckOfCards {

2 个答案:

答案 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;功能