Java模拟斗地主可以洗牌发牌的小程序

Java模拟斗地主—可以洗牌发牌的小程序

可以实现的功能:
1.得到一副牌,共54张
2.洗牌,将原本排序好的牌打乱顺序
3.发牌,将牌发给三个玩家,并留下三张底牌
4.将玩家手上的牌按顺序排好

代码

import java.util.*;

public class Do {
    public static void main(String[] args){
        HashMap<Integer,String> poker = new HashMap<>();
        ArrayList<Integer> pokers = new ArrayList<>();
        List<String>colors=new ArrayList<>();
        List<String>number=new ArrayList<>();
        colors.add("♠");
        colors.add("♦");
        colors.add("♣");
        colors.add("♥");
        number.add("A");
        for (int i=2;i<=10;i++){
            number.add(i+"");
        }
        number.add("J");
        number.add("Q");
        number.add("K");
        int index = 0;
        poker.put(index,"大王");
        pokers.add(index);
        index++;
        poker.put(index,"小王");
        pokers.add(index);
        index++;
        for (String n: number) {
            for (String c: colors) {
                poker.put(index,c+n);
                pokers.add(index);
                index++;
            }
        }
        Collections.shuffle(pokers);
        ArrayList<Integer>wanjia1=new ArrayList<>();
        ArrayList<Integer>wanjia2=new ArrayList<>();
        ArrayList<Integer>wanjia3=new ArrayList<>();
        ArrayList<Integer>dip=new ArrayList<>();
        for (int i=0;i<pokers.size();i++){
            Integer pai=pokers.get(i);
            if (i>=51){
                dip.add(pai);
            }else {
                if (i%3==0){
                    wanjia1.add(pai);
                }else if (i%3==1){
                    wanjia2.add(pai);
                }else {
                    wanjia3.add(pai);
                }
            }
        }
        Collections.sort(wanjia1);
        Collections.sort(wanjia2);
        Collections.sort(wanjia3);
        kan("wanjia1",poker,wanjia1);
        kan("wanjia2",poker,wanjia2);
        kan("wanjia3",poker,wanjia3);
        kan("dip",poker,dip);    }
    public static void kan(String name, HashMap<Integer,String> poker, ArrayList<Integer> list){
        System.out.print(name+":");
        for (Integer key : list) {
            String value = poker.get(key);
            System.out.print(value+" ");
        }
        System.out.println();
    }
}

你可能感兴趣的:(Java模拟斗地主可以洗牌发牌的小程序)