洗牌喽

来源:互联网 发布:s7 400编程软件 编辑:程序博客网 时间:2024/05/19 19:44

思想: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");}}}}



原创粉丝点击