【Java学习笔记】16.TreeMap集合实现斗地主洗牌发牌
2017-05-11 09:41
513 查看
/** * 用TreeMap实现斗地主发牌洗牌 * 并将手牌按照顺序排列 */ import java.util.ArrayList; import java.util.Collections; import java.util.TreeMap; import java.util.TreeSet; public class Poker2 { public static void main(String[] args) { //创建TreeMap集合 TreeMap<Integer, String> pokers = new TreeMap<>(); //创建扑克牌 String[] colors = {"♠","♥","♦","♣"}; String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"}; //创建ArrayList集合,用来存储牌从小到大的索引 ArrayList<Integer> indexs = new ArrayList<>(); //开始添加牌 int index = 0; for (String number : numbers) { for (String color : colors) { pokers.put(index, color+number); indexs.add(index); index++; } } //添加大王小王 pokers.put(index, "小王"); indexs.add(index); index++; pokers.put(index, "大王"); indexs.add(index); //开始洗牌。shuffle()方法将随机打乱集合顺序 Collections.shuffle(indexs); //创建三位玩家和底牌的TreeSet集合 TreeSet<Integer> liudehua = new TreeSet<>(); TreeSet<Integer> guodegang = new TreeSet<>(); TreeSet<Integer> zhoujielun = new TreeSet<>(); TreeSet<Integer> dipai = new TreeSet<>(); for (int i = 0; i < indexs.size(); i++) { if (i>=indexs.size()-3) { dipai.add(indexs.get(i)); }else if (i%3==0) { liudehua.add(indexs.get(i)); }else if (i%3==1) { guodegang.add(indexs.get(i)); }else if (i%3==2) { zhoujielun.add(indexs.get(i)); } } //看牌 lookPoker("刘德华",liudehua,pokers); lookPoker("郭德纲",guodegang,pokers); lookPoker("周杰伦",zhoujielun,pokers); lookPoker("最后三张",dipai,pokers); } private static void lookPoker(String name, TreeSet<Integer> indexs, TreeMap<Integer, String> pokers) { System.out.print(name+"的牌"); for (Integer index : indexs) { System.out.print(pokers.get(index)+" "); } System.out.println(); } }
相关文章推荐
- Java学习笔记34(集合框架八:综合案例:模拟斗地主的洗牌发牌)
- Java学习笔记之集合(五):HashSet集合的实现原理
- java学习笔记(二十五)模拟斗地主发牌与洗牌
- java学习笔记—自定义实现linkedList集合
- Java基础知识强化之集合框架笔记71:模拟斗地主洗牌和发牌并对牌进行排序的案例
- Java学习笔记之集合(六):TreeSet集合的实现原理
- java学习笔记——自定义实现Stack集合
- Java基础知识强化之集合框架笔记70:模拟斗地主洗牌和发牌(ArrayList)
- Java集合学习笔记
- 关于java打印功能的最简单实现的学习笔记
- 深入Java集合学习系列:HashSet的实现原理
- java集合实现--01 --源代码学习--创建集合对象
- Java基础学习笔记(七)Set接口及其实现子类
- Java 死锁的实现 -Java学习笔记(28)
- java集合框架学习—HashMap的实现原理
- 深入Java集合学习系列:LinkedHashMap的实现原理
- Java基础学习笔记(七)Set接口及其实现子类
- 用JS实现移动的窗口 - 流星絮语 JAVA学习笔记 - CSDNBlog
- JAVA学习笔记--集合
- java(j2se)学习笔记----如何实现四舍五入?