黑马程序员技术交流社区
标题:
模拟斗地主,(洗牌,发牌,看牌)
[打印本页]
作者:
haojingwei310
时间:
2016-5-31 14:53
标题:
模拟斗地主,(洗牌,发牌,看牌)
public class Test03 {
/**
* 模拟斗地主
*
* 分析: 1 买衣服牌,就是自己创建一个集合对象
* 2 洗牌 Collections.shffle();
* 3 发牌
* 4 看牌
*/
public static void main(String[] args) {
String[] num = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
"K", "A", "2" };
String[] color = { "红桃", "黑桃", " 梅花", "方片" };
HashMap<Integer, String> hm = new HashMap<>(); // 存索引---键和扑克----值
ArrayList<Integer> list = new ArrayList<>(); // 存储索引, 方便洗牌
int index = 0;
// 拼接扑克, 并将索引存在hm中
for (String s1 : num) { // 获取数字
for (String s2 : color) { // 获取颜色
hm.put(index, s2.concat(s1));
list.add(index); //把索引添加扫单列集合中
index++; // 索引加1
}
}
//添加小王和大王到双列集合中
hm.put(index, "小王");
list.add(index);
index++;
hm.put(index, "大王");
list.add(index);
//洗牌
Collections.shuffle(list);
//发牌;
TreeSet<Integer> gaojin = new TreeSet<>(); //接收牌可以排序
TreeSet<Integer> longwu = new TreeSet<>();
TreeSet<Integer> me = new TreeSet<>();
TreeSet<Integer> dipai = new TreeSet<>();
for(int i = 0; i< list.size(); i++) {
if(i >= list.size() - 3 ) {
dipai.add(list.get(i)); //把list中的后三个放到底牌中
}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,"高进");
System.out.println();
lookPoker(hm,longwu,"龙五");
System.out.println();
lookPoker(hm,me,"我");
}
/*
* 返回值: void
* 参数列表: HashMap , TreeSet , String name
*/
public static void lookPoker(HashMap<Integer,String> hm,TreeSet<Integer> ts,String name) {
System.out.println(name + "的牌是: " );
for(Integer i : ts) { //拿到每一个键
System.out.print(hm.get(i) + " "); //获取值
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2