java实现斗地主发牌及自动排序

java实现斗地主发牌及自动排序

  • 前言
  • 题目
  • 生成扑克
    • 新建数组
    • 添加花色和各种数值
  • 发牌功能
  • 排序功能
    • 元素交换位置
    • 排序逻辑
  • 输出
  • 效果图
  • 完整代码

前言

暑期线上实训的第一节课。java相关内容的复习。

题目

用java实现斗地主发牌、按大小自动排序功能。
具体要求如下:

  1. 一副扑克牌最基本的54张牌,包括红桃、黑桃、方片、梅花四种花色的A、2、3、4、5、6、7、8、9、10、J、Q、K以及大王与小王;
  2. 斗地主模式 ,包含大小王在内的54张牌,去掉三张底牌后平均分发给三名玩家;
  3. 要求展示生成后打乱的扑克序列;
  4. 要求展示三个人的手牌及底牌;

生成扑克

新建数组

        //数组1放所有的牌
        List<String> pokes = new ArrayList<>();
        //数组2放花色
        List<String> colors = new ArrayList<>();
        //数组3放数字
        List<String> numbers = new ArrayList<>();

添加花色和各种数值

        //添加四种花色
        colors.add("♥");
        colors.add("♠");
        colors.add("♦");
        colors.add("♣");

        //添加A2345678910JQK
        numbers.add("A");
        for(int i=2;i<=10;i++){
   
            numbers.add(i+"");
        }
        numbers.add("J");
        numbers.add("Q");
        numbers.add("K");
        for(String c:colors){
   
            for(String n:numbers){
   
                String pai=c+n;
                pokes.add(pai);
            }
        }
        //添加大王和小王
        pokes.add("大王");
        pokes.add("小王");
        System.out.println("有序的整副扑克"+pokes);
        //洗牌
        Collections.shuffle(pokes);
        System.out.println("打乱的整副扑克"+pokes);

发牌功能

        //留下3张底牌的同时完成发牌
        ArrayList<String> player1=new ArrayList<>();
        ArrayList<String> player2=new ArrayList<>();
        ArrayList<String> player3=new ArrayList<>();
        ArrayList<String> dipai=new ArrayList<>();
        for(int i=0;i<pokes.size();i++){
   
            String pai=pokes.get(i);
            if(i>=51){
   
                dipai.add(pai);
            }else{
   
                if(i%3==0){
   
                    player1.add(pai);
                }else if(i%3==1){
   
                    player2.add(pai);
                }else{
   
                    player3.add(pai);
                }
            }
        }

排序功能

元素交换位置

    private static <E> void swap(List<E> list,int index1,int index2) {
   
        E e=list.get(index1);
        list.set

你可能感兴趣的:(java)