JAVA 斗地主发牌和排序

本文详细介绍了如何使用JAVA编程实现斗地主游戏中的发牌过程,并探讨了如何对发出来的牌进行有效排序,确保游戏的公平性和逻辑性。通过实例代码,展示了关键算法的应用。
摘要由CSDN通过智能技术生成

JAVA 斗地主发牌和排序

import java.sql.SQLOutput;
import java.util.*;
public class ddz
`{

    public static void main(String[] args)
    {
    
        //1.建54张牌
        //2.洗牌
        //3.留三张牌
        //4.发牌
        HashMap<Integer,String> pokes =new HashMap<>();
        List<String> colors =new ArrayList<>();
        List<String> numbers =new ArrayList<>();
        List<Integer> kkk =new ArrayList<>();
        colors.add("♥");
        colors.add("♠");
        colors.add("♣");
        colors.add("♦");

        for (int i=2;i<=10;i++)
        {
            numbers.add(i+"");
        }
        numbers.add("A");
        numbers.add("J");
        numbers.add("Q");
        numbers.add("K");
        int k=0;
        for (String n:numbers)
        {
            for (String c:colors)
            {
                String pai=c+n;
                pokes.put(k,pai);
                kkk.add(k);
                k++;
            }
        }
        pokes.put(k,"小王");
        kkk.add(k);
        k++;
        pokes.put(k,"大王");
        kkk.add(k);
        k++;

        Collections.shuffle(kkk);
        System.out.println(pokes);


        ArrayList<Integer> SJ=new ArrayList<>();
        ArrayList<Integer> LBW=new ArrayList<>();
        ArrayList<Integer> LYM=new ArrayList<>();
        ArrayList<Integer> dipai=new ArrayList<>();
        for (int i=0;i<pokes.size();i++)
        {
            int pai=kkk.get(i);
            if (i>=51)
            {
                dipai.add(pai);
            }
            else
            {
                if (i%3==1)
                {
                    SJ.add(pai);
                }
                else if(i%3==0)
                {
                    LBW.add(pai);
                }
                else
                {
                    LYM.add(pai);
                }
            }
        }
	
	//排序
        Collections.sort(SJ);
        Collections.sort(LBW);
        Collections.sort(LYM);
        Collections.sort(dipai);
        System.out.println("dipai:");
        for (int i=0;i<dipai.size();i++)
        {
            System.out.print(pokes.get(dipai.get(i))+" ");
        }
        System.out.println(" ");
        System.out.println("SJ:");
        for (int i=0;i<SJ.size();i++)
        {
            System.out.print(pokes.get(SJ.get(i))+" ");
        }
        System.out.println(" ");
        System.out.println("LYM:");
        for (int i=0;i<LYM.size();i++)
        {
            System.out.print(pokes.get(LYM.get(i))+" ");
        }
        System.out.println(" ");
        System.out.println("LBW:");
        for (int i=0;i<LBW.size();i++)
        {
            System.out.print(pokes.get(LBW.get(i))+" ");
        }
        System.out.println(" ");
        System.out.println("dipai:"+dipai);
        System.out.println("SJ:"+SJ);
        System.out.println("LBW:"+LBW);
        System.out.println("LYM:"+LYM);


    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值