思想:52张牌(不考虑大小王)cards数组存储,0-12, 13-25, 26-38, 39-51 分别为红心,方块,梅花,黑桃
用电脑随机生成数来交换牌的位置
public class remixcards {
public static void main(String[] args) {
final int N = 52;
String [] cardColors = {"红心","方块","梅花","黑桃"};
String [] cardValuas = {"A","2","3","4","5","6","7","8",
"9","10","J","Q","k"};
//52张牌
int [] cards = new int[52];
for(int i = 0; i < cards.length; i++){
cards[i] = i;//牌面与循环变量的值一致,0-51之间
}
System.out.println("洗牌前:");
for(int i = 0; i < cards.length; i++){
System.out.printf("%s-%s",cardColors[cards[i]/13], cardValuas[cards[i]%13]);
if((i+1) % 13 == 0){
System.out.println();
}else{
System.out.print("\t");
}
}
//洗牌:随机生成一个0-51之间的数字newIndex,交换cards[i]与cards[newIndex]的元素
for(int i = 0; i < cards.length; i++){
int newIndex = (int)(Math.random() * N);//0-51之间的随机数字
int temp = cards[i];
cards[i] = cards[newIndex];
cards[newIndex] = temp;
}
System.out.println("洗牌后:");
for(int i = 0; i < cards.length; i++){
System.out.printf("%s-%s",cardColors[cards[i]/13], cardValuas[cards[i]%13]);
if((i+1) % 13 == 0){
System.out.println();
}else{
System.out.print("\t");
}
}
}
}