/*共有52张牌,编号从0到51.他们分为四种牌“黑桃,红桃,方块,梅花,”,每种牌有13张。
* 我们分别对应1-12,13-25,26-38,39-51的数字和花色,打乱数组。
* 抽出打乱后的数组中的前4个数字。除以13就是这张牌的花色,对13取余数就是这张牌的点数(最开始已经规定好了他们的一一对应关系)
* 这种算法可以保证抽几张牌时不会把抽过的排又抽一遍 */
public class DeckOfCards {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int [] deck = new int[52];
String[] suits = {"Spades","Hearts","Diamonds","Clubs"}; //suits数组存放花色
String[] ranks = {"Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"}; //ranks数组存放点数
for(int i=0;i<deck.length;i++) { //数组deck初始化为1到51
deck[i]=i;
}
for(int i=0;i<deck.length;i++) { //将数组打乱,循环一遍,循环的每一个元素deck[i]和任意产生的随机数下标j将deck[i],deck[j]互换。
int index = (int) (Math.random()*deck.length);
int temp = deck[i];
deck[i] = deck[index];
deck[index] = temp;
}
for(int i=0;i<4;i++) { //抽取前4个数字
String suit = suits[deck[i]/13]; //花色0,1,2,3
String rank = ranks[deck[i]%13]; //数字Ace,2,3......
System.out.println(rank+ " of "+ suit);
}
}
}
随机抽取扑克牌
最新推荐文章于 2022-05-04 12:58:54 发布