posts - 2, comments - 2, trackbacks - 0, articles - 23
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          發撲克牌的簡單(java)實現

          Posted on 2012-02-22 09:28 齊納爾多 閱讀(626) 評論(0)  編輯  收藏 所屬分類: java
          package cn.com.pbqi.corejava;

          import java.util.ArrayList;
          import java.util.Iterator;
          import java.util.List;
          import java.util.Map;
          import java.util.Random;
          import java.util.TreeMap;

          public class CardGame {
              
              
          private int pNum;
              
          private List<String> cardList = new ArrayList<String>(54);
              
          private Map<String,List<String>> map = new TreeMap<String,List<String>>();
              
              
          /**
               * 打牌的人數,最少2個人,最多4個人
               * 
          @param pNum
               
          */

              
          public CardGame(int pNum) {
                  
          if(pNum < 2 || pNum > 4{
                      
          throw new IllegalArgumentException("CardPlayer must between 2 and 4, CardPlayer=" + pNum);
                  }

                  
          this.pNum = pNum;
                  
          for(int i = 0; i <pNum; i++{
                      map.put(i
          +"-"new ArrayList<String>());
                  }

                  
                  
          this.initCards();
                  
                  
          this.distribute();
                  
                  
          this.display();
              }

              
              
          /**
               * 初始化一副撲克
               
          */

              
          public List<String>  initCards() {
                  String[] type 
          = {"r","b","s","m"};
                  String[] cards 
          = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
                  String[] kings 
          = {"大王","小王"};
                  
                  
          for(int i = 0; i < type.length; i++{
                      
          for(int j = 0; j < cards.length;j++{
                          cardList.add(cards[j]
          +type[i]);
                      }

                  }

                  
          for(int k = 0; k < kings.length; k++){
                      cardList.add(kings[k]);
                  }

                  
          return cardList;
              }

              
          /**
               * 發牌
               
          */

              
          public void distribute() {
                  Random r 
          = new Random();
                  
          int len = cardList.size();
                  
          int bakLen = len;
                  
          for(int i = 0; i < len; i++{
                      
          int rNum = r.nextInt(bakLen);
                      String card 
          = cardList.get(rNum);
                      
          int left = i % pNum;
                      map.get(left
          +"-").add(card);
                      cardList.remove(rNum);
                      bakLen
          --;
                  }

              }

              
              
          public void display() {
                  System.out.println(
          "======r:紅桃,b:黑桃,s:方塊,m:米花===========");
                  
          for(Iterator<String> iter = map.keySet().iterator(); iter.hasNext();) {
                      String key 
          = iter.next();
                      List
          <String> list = map.get(key);
                      System.out.print(key
          + " 的牌是===");
                      
          for(int i = 0; i < list.size();i++{
                          System.out.print(list.get(i));
                          
          if(i != list.size() -1{
                              System.out.print(
          ",");
                          }

                      }

                      System.out.println(
          "");
                  }

              }

              
              
          public static void main(String[] args) {
                  CardGame cg 
          = new CardGame(4);

              }


          }

          主站蜘蛛池模板: 英吉沙县| 佛学| 和顺县| 溧阳市| 靖州| 鄄城县| 兴海县| 上饶县| 苍山县| 大理市| 紫阳县| 禄丰县| 大竹县| 陇南市| 贡嘎县| 盐亭县| 巴东县| 漳浦县| 隆尧县| 咸阳市| 莲花县| 读书| 长沙县| 苗栗市| 江达县| 黑山县| 馆陶县| 萍乡市| 哈巴河县| 临沂市| 甘洛县| 专栏| 海伦市| 象州县| 江孜县| 鄯善县| 晋城| 汽车| 呼和浩特市| 前郭尔| 芒康县|