問征夫以前路
          感謝所有關心過支持過我的人, 感謝所有恨過我嘲笑過我的人 !
          posts - 30,comments - 147,trackbacks - 0
           1package com.web;
           2
           3public class Card {
           4
           5    private String face; // A, K, Q, J, 10,  2
           6    private String suit; // Spade, Heart, Club, Diamond
           7
           8    public Card(){
           9        
          10    }

          11    
          12    //定義一個構造函數用于初始化點數2~A的牌
          13    public Card(String suit, String face) {
          14        this.face = face;
          15        this.suit = suit;
          16    }

          17
          18    //定義一個構造函數用于初始化大王和小王 
          19    public Card(String suit){
          20        this.face = "";  //如果不給face賦值的話,洗牌和切牌后的大小王前面會顯示“null” 
          21        this.suit = suit;
          22    }

          23    
          24    protected String getFace() {
          25        return face;
          26    }

          27
          28    protected String getSuit() {
          29        return suit;
          30    }

          31
          32    public String toString() {
          33        return suit + " " + face;
          34    }

          35
          36    public static void shuffle(Card[] deck, int startIndex, int size, int splitIndex) {
          37        if (splitIndex * 2 > size) {
          38            Card.swap(deck, startIndex, splitIndex, size - splitIndex);
          39            shuffle(deck, size - splitIndex, splitIndex, size - splitIndex);
          40        }
           else if (splitIndex * 2 < size) {
          41            Card.swap(deck, startIndex, size - splitIndex, splitIndex);
          42            shuffle(deck, startIndex, size - splitIndex, splitIndex);
          43        }
           else {
          44            Card.swap(deck, startIndex, splitIndex, splitIndex);
          45        }

          46
          47    }

          48
          49    public static void swap(Card[] deck, int srcIndex, int dstIndex, int size) {
          50        String face = "";
          51        String suit = "";
          52        for (int i = 0; i < size; i++{
          53            face = deck[srcIndex + i].face;
          54            suit = deck[srcIndex + i].suit;
          55            deck[srcIndex + i].face = deck[dstIndex + i].face;
          56            deck[srcIndex + i].suit = deck[dstIndex + i].suit;
          57            deck[dstIndex + i].face = face;
          58            deck[dstIndex + i].suit = suit;
          59        }

          60    }

          61    
          62    public static void main(String[] args){
          63        Card[] deck = new Card[54];
          64        String f[] = "A""2""3""4""5""6""7""8""9""10""J""Q""K" };
          65        // String s[] = {"Spade","Heart","Club","Diamond"};
          66        String s[] = "黑桃""紅桃""梅花""方塊" };
          67        for (int i = 0; i < s.length; i++{
          68            for (int j = 0; j < f.length; j++{
          69                deck[i * 13 + j] = new Card(s[i], f[j]);
          70            }

          71            deck[52= new Card("小王"); 
          72            deck[53= new Card("大王"); 
          73        }

          74        int rnd = 0;
          75        int numOfShuffle = 10;
          76        for (int i = 0; i < numOfShuffle; i++{
          77            rnd = (int) Math.abs(Math.random() * 52);
          78            Card.shuffle(deck, 0, deck.length, rnd);
          79        }

          80        // Test
          81        for (int i = 0; i < deck.length; i++{
          82            System.out.println(deck[i]);
          83        }

          84    }

          85}

          86
          posted on 2011-09-01 17:46 kenzhang 閱讀(2755) 評論(2)  編輯  收藏

          FeedBack:
          # re: java編寫撲克的洗牌程序
          2011-09-06 10:22 | 好看的電影
          正需要用到,拿來試試  回復  更多評論
            
          # re: java編寫撲克的洗牌程序
          2014-05-03 18:59 | zuidaima
          可以參考代碼:Java 撲克發牌算法實現,下載地址:http://www.zuidaima.com/share/1550463274224640.htm  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 海盐县| 英山县| 柯坪县| 东宁县| 英吉沙县| 高青县| 高雄市| 德安县| 安化县| 栾川县| 墨玉县| 昌黎县| 湛江市| 察哈| 利津县| 光山县| 岑溪市| 筠连县| 彝良县| 宜春市| 蚌埠市| 通州区| 通道| 雷州市| 南昌市| 抚松县| 吐鲁番市| 垣曲县| 郸城县| 虹口区| 通江县| 巢湖市| 佛教| 阳东县| 宣化县| 漳浦县| 汉阴县| 积石山| 张家港市| 宁乡县| 北流市|