升级版斗地主

这个Java程序创建了一个扑克牌 deck,并进行了洗牌操作,然后将牌平均分配给三个玩家和底牌。程序使用HashMap存储牌,ArrayList记录编号,通过TreeSet进行牌的管理。最后,程序打印出每个玩家和底牌的牌面。
摘要由CSDN通过智能技术生成
package Pokers;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;

public class PokerUp {
    public static void main(String[] args) {

        //牌盒
        HashMap<Integer,String> hm=new HashMap<Integer, String>();
        //编号
        ArrayList<Integer> num=new ArrayList<Integer>();
        //花色 数值
        //♦ ♣ ♥ ♠
        //2,3,4,5,6,7,8,9,10,J,Q,K,A
        String[] colors={"♦","♣","♥","♠"};
        String[] numbers={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
        int h=-1;
        for (int j=0;j<numbers.length;j++){
            for (int i=0;i<colors.length;i++){
                h++;
                num.add(h);
                hm.put(h,colors[i]+numbers[j]);
            }
        }
        h++;
        num.add(h);
        hm.put(h,"小王");
        h++;
        num.add(h);
        hm.put(h,"大王");
        //洗牌
        Collections.shuffle(num);
        //发牌
        TreeSet<Integer> hh = new TreeSet<Integer>();
        TreeSet<Integer> ff = new TreeSet<Integer>();
        TreeSet<Integer> ll = new TreeSet<Integer>();
        TreeSet<Integer> dpPoker = new TreeSet<Integer>();
        for (int i = 0; i < num.size(); i++) {
            int n = num.get(i);
            if (i >= num.size() - 3) {
                dpPoker.add(n);
            } else if (i % 3 == 0) {
                hh.add(n);
            } else if (i % 3 == 1) {
                ff.add(n);
            } else if (i % 3 == 2) {
                ll.add(n);
            }
        }
        //看牌
        lookPoker(hm, "hh", hh);
        lookPoker(hm, "ff", ff);
        lookPoker(hm, "ll", ll);
        lookPoker(hm, "底牌", dpPoker);
//        System.out.println(num);
//        System.out.println(hm);
    }
    public static void lookPoker(HashMap<Integer,String> hm,String name,TreeSet<Integer> ts){
        System.out.println(name+"的牌为:");
        for (Integer in:ts){
            String s = hm.get(in);
            System.out.print(s+" ");
        }
        System.out.println();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值