Java中使用HashMap,TreeSet和List来实现模拟斗地主的洗牌和发牌的小例子
2016-07-29 21:49
639 查看
模拟斗地主洗牌,发牌
使用HashMap,TreeSet和List来实现
效果如下图所示:
详细实现代码如下:
使用HashMap,TreeSet和List来实现
效果如下图所示:
详细实现代码如下:
package star.july.tags; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.TreeSet; /** * 模拟斗地主洗牌,发牌 * 使用HashMap,TreeSet和List来实现 * @author Starjuly * */ public class Poker { public static void main(String[] args) { //先把牌设置好 String[] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"}; String[] size = {"方块","梅花","红桃","大葵"}; HashMap<Integer, String> hm = new HashMap<Integer,String>(); ArrayList<Integer> list = new ArrayList<Integer>(); int index = 0; //装牌 for(String s1 : num){ for(String s2 : size){ hm.put(index,s2.concat(s1)); list.add(index); index++; } } //装大王和小王 hm.put(index, "小王"); list.add(index); index++; hm.put(index, "大王"); list.add(index); //洗牌:将集合中的顺序打乱 Collections.shuffle(list); //定义玩家和底牌 TreeSet<Integer> GaoJin = new TreeSet<Integer>(); TreeSet<Integer> LongWu = new TreeSet<Integer>(); TreeSet<Integer> Me = new TreeSet<Integer>(); TreeSet<Integer> DiPai = new TreeSet<Integer>(); //将牌发给玩家和留3张底牌 for(int i = 0 ; i < list.size() ; i++){ if(i >= list.size() - 3){ DiPai.add(list.get(i)); } else if( i % 3 == 0){ GaoJin.add(list.get(i)); } else if( i % 3 == 1){ LongWu.add(list.get(i)); } else{ Me.add(list.get(i)); } } //遍历每个玩家手中的牌 lookPoker(hm, GaoJin, "高进"); lookPoker(hm, LongWu, "龙五"); lookPoker(hm, Me, "自己"); lookPoker(hm, DiPai, "底牌"); } public static void lookPoker(HashMap<Integer, String> hm , TreeSet<Integer> ts,String name){ System.out.print(name + " 手中的牌: "); for(Integer i : ts){ //用增强for循环遍历TreeSet集合 String poker = hm.get(i); //通过key找到HashMap中的值 System.out.print(poker + " "); } System.out.println(); } }
相关文章推荐
- java事件监听机制
- Java中equals和==的区别
- 004——Spring中Bean的初始化和销毁
- 《Java中AtomicIntegerFieldUpdater的应用》
- Spring3核心技术之事务管理机制(转载)
- 《Java反射的应用》
- Java学习笔记(二):数据类型和运算符(2)
- java练习+数字特征值
- java常用函数一
- spring 问题解决汇总
- Java Web学习(26): JSTL学习(四)
- Springmvc+uploadify实现文件上传
- Java Bean以及xsd相互生成
- 002——第一个Spring程序
- Java设计模式--代理模式
- (2) Java类的加载
- spring+mybatis+log4j学习记录
- Spring aop 实现异常拦截
- Struts2-032/033/037/devMode漏洞演示环境搭建
- 【Java语言学习】之Comparator 和 Comparable 对比