0
点赞
收藏
分享

微信扫一扫

Java实现斗地主发牌洗牌看牌

夏天的枫_ 2022-02-19 阅读 97
javap2p

学习完java的集合类,用HashMap,ArrayList,TreeSet实现了斗地主的一部分功能。

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

public class PokerDemo {

    public static void main(String[] args) {
        String[] ShuZi= {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q","K"};
        String[] HuaSe= {"♦", "♣", "♥", "♠"};
//        创建扑克,数字-牌号,如1对应A♦
        HashMap <Integer,String> poker=new HashMap<Integer,String>();
//        创建序列,存放数字,洗牌只需随机置换序列,然后给每个玩家分配数字,看牌就看对应扑克的值
        ArrayList<Integer> bianhao=new ArrayList<Integer>();
//        得到一副新扑克
        int order=0;
        for(String x:ShuZi) {
            for(String y:HuaSe) {
                poker.put(++order, x.concat(y));
                bianhao.add(order);
            }
        }
        poker.put(++order, "小王");
        bianhao.add(order);
        poker.put(++order, "大王");
        bianhao.add(order);
        //遍历一遍
//        traverse(poker);
//        三个玩家,底牌
        TreeSet<Integer> play1=new TreeSet<Integer>();
        TreeSet<Integer> play2=new TreeSet<Integer>();
        TreeSet<Integer> play3=new TreeSet<Integer>();
        TreeSet<Integer> dipai=new TreeSet<Integer>();
//        随机置换
        Collections.shuffle(bianhao);
//        间隔发牌,增加随机率
        for(int s=0;s<bianhao.size();s++) {
            if(s>51) {
                dipai.add(bianhao.get(s));
            }
            if(s%3==1) {
                play1.add(bianhao.get(s));
            }
            if(s%3==2) {
                play2.add(bianhao.get(s));
            }
            if(s%3==0) {
                play3.add(bianhao.get(s));
            }
        }
        System.out.println();
        lookPoker("小明",play1,poker);
        lookPoker("小辉",play2,poker);
        lookPoker("小红",play3,poker);
        
    }
    public static void traverse(HashMap h) {
        Set<Integer> temp=h.keySet();
        for(int t:temp) {
            System.out.print(h.get(t));
        }
    }
    public static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer,String> hm) {
        System.out.print(name+"的牌是: ");
        for(int x:ts) {
            System.out.print(hm.get(x)+",");
        }
        System.out.println();
    }

}


 

举报

相关推荐

0 条评论