1. 程式人生 > >JAVA實現隨機洗牌方法

JAVA實現隨機洗牌方法

  1. import java.util.Random;  
  2. class Card  
  3. {  
  4.     public String num;  
  5.     public String suit;  
  6.     Card(String n,String s)  
  7.     {  
  8.         this.num=n;  
  9.         this.suit=s;  
  10.     }  
  11.     public String toString()  
  12.     {  
  13.         String ss=suit+":"+num+"  ";  
  14.         return ss;  
  15.     }  
  16. }  
  17. class DeskOfCard  
  18. {  
  19.     Card card[];  
  20.     public void initcard()//初始化  
  21.     {  
  22. String num[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};  
  23.         String suit[]={"方塊","梅花","紅桃","黑桃"};  
  24.         card = new Card[52];  
  25.         for(int i=0;i<52;i++)  
  26.         {  
  27. card[i] = new Card(num[i%13],suit[i/13]); 
  28.         }  
  29.     }  
  30.     public void shufflecard()//洗牌  
  31.     {  
  32.  Random rd = new Random(); 
  33.         for(int i=0;i<52;i++)  
  34.         {  
  35. int j = rd.nextInt(52);//生成隨機數  
  36.             Card temp = card[i];//交換  
  37.             card[i]=card[j];  
  38.             card[j]=temp;  
  39.         }  
  40.     }  
  41.     public void dealcard()//發牌  
  42.     {  
  43.         for(int i
    =0;i<52;i++)  
  44.         {  
  45. if(i%4==0) System.out.println("\n");  
  46.             System.out.print(card[i]);  
  47.         }  
  48.     }  
  49. }  
  50. public class TestCard   
  51. {  
  52.     public static void main(String[] args)   
  53.     {  
  54.         DeskOfCard cc = new DeskOfCard();  
  55.         cc.initcard();  
  56.         cc.shufflecard();  
  57.         cc.dealcard();  
  58.     }  
轉載自:http://www.cnblogs.com/bersaty/archive/2013/09/11/3315371.html