黑马程序员技术交流社区
标题:
斗地主
[打印本页]
作者:
Demo_黑马
时间:
2016-5-26 18:16
标题:
斗地主
模拟斗地主洗牌和发牌并对牌进行排序的代码实现
package com.heima.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
publicclassTest3{
/**
* * A:案例演示
* 模拟斗地主洗牌和发牌并对牌进行排序的代码实现
*
* 分析:
* 1,买一副扑克,其实就是自己创建一个集合对象,将扑克牌存储进去
* 2,洗牌
* 3,发牌
* 4,看牌
*/
publicstaticvoid main(String[] args){
//1,买一副扑克,其实就是自己创建一个集合对象,将扑克牌存储进去
String[] num ={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
String[] color ={"红桃","黑桃","方片","梅花"};
HashMap<Integer,String> hm =newHashMap<>(); //存储索引和扑克牌
ArrayList<Integer> list =newArrayList<>(); //存储索引
int index =0;
//拼接扑克牌并索引和扑克牌存储在hm中
for(String s1 : num){ //获取数字
for(String s2 : color){ //获取颜色
hm.put(index, s2.concat(s1));
list.add(index); //将索引0到51添加到list集合中,注意内外层的先后顺序,外层是数字,内层是花色
index++;
}
}
//将小王添加到双列集合中
hm.put(index,"小王");
list.add(index); //将52索引添加到集合中
index++;
hm.put(index,"大王");
list.add(index); //将52索引添加到集合中
//2,洗牌
Collections.shuffle(list);
//3,发牌
TreeSet<Integer> gaojin =newTreeSet<>();
TreeSet<Integer> longwu =newTreeSet<>();
TreeSet<Integer> me =newTreeSet<>();
TreeSet<Integer> dipai =newTreeSet<>();
for(int i =0; i < list.size(); i++){
if(i >= list.size()-3){
dipai.add(list.get(i)); //将三张底牌存储在底牌集合中
}elseif(i %3==0){
gaojin.add(list.get(i));
}elseif(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,"底牌");
}
/*
* 看牌
* 1,返回值类型void
* 2,参数列表HashMap,TreeSet,String name
*/
publicstaticvoid lookPoker(HashMap<Integer,String> hm,TreeSet<Integer> ts ,String name){
System.out.print(name +"的牌是:");
for(Integer i : ts){ //i代表双列集合中的每一个键
System.out.print(hm.get(i)+" ");
}
System.out.println();
}
}
复制代码
怎么样?学好集合还能偷偷地修改源码,让你把把有大小王,把把当赌神!~
作者:
目前是菜鸟
时间:
2016-5-26 19:56
我以为你缺人呢
作者:
zhg317786429
时间:
2016-5-26 22:55
水成这样了 你至少改下名字啊 你把冯佳至少该了吧! 不忍直视啊~~~~~~~~~~
作者:
Demo_黑马
时间:
2016-5-26 22:57
目前是菜鸟 发表于 2016-5-26 19:56
我以为你缺人呢
哈哈,真的缺人
作者:
Demo_黑马
时间:
2016-5-26 22:58
729524251 发表于 2016-5-26 18:22
大水B 666666666666
我不水的。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2