12.斗地主案例的实现

题目:实现三人玩斗地主的案例

分析:
1.首先要有一个大集合存储54张牌
  一个数组存储牌的花色{♥,♦,♠,♣}
  一个数组存储牌的大小{3,4,5,6,7,8,9,10,J,Q,K,A,2}
  将这两个数组组合存储到大集合中
2.洗牌
   使用工具类collection的方法
  static void shuffle(List list)使用指定的随机源对  指定列表进行置换
3.发牌
  创建三个集合代表三个玩家
  玩家一获得i%3=0的牌
  玩家二获得i%3=1的牌
  玩家三获得i%3=2的牌
  当i>51时停止发牌,剩下的牌存储在底牌集合中
4.看牌
  循环遍历,查看所有玩家的牌和底牌
代码的实现

public static void main(String[] args) {
        //存储54张牌
        ArrayList<String> porker = new ArrayList<>();
        //将大小王添加进牌中
        porker.add("大王");
        porker.add("小王");
        //存储花色
        String[] list1 = {"♥","♠","♦","♣"};
       //存储大小
        String[] list2 = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
        //组合并添加进大集合中
        for(String array:list1){
            for(int i=0;i<list2.length;i++){
                porker.add(list2[i]+array);
            }
        }
      //  System.out.println("存储的54张牌"+porker);
        //洗牌
        Collections.shuffle(porker);
        //发牌
        ArrayList<String> player01 = new ArrayList<>();
        ArrayList<String> player02 = new ArrayList<>();
        ArrayList<String> player03 = new ArrayList<>();
        ArrayList<String> diPai = new ArrayList<>();
        for(int i=0;i<porker.size();i++){
            //获取发的每一张牌
            String p = porker.get(i);
            if(i>=51){
                diPai.add(p);
            }else  if(i%3==0){
                player01.add(p);
            }else if(i%3==1){
                player02.add(p);
            }else if(i%3==2){
                player03.add(p);
            }
        }
        System.out.println("玩家一的牌"+player01);
        System.out.println("玩家二的牌"+player02);
        System.out.println("玩家三的牌"+player03);
        System.out.println("底牌"+diPai);

    }

输出结果
12.斗地主案例的实现_第1张图片

阅读原文

你可能感兴趣的:(Java练习题)