思路分析:
1、创建HashMap,键是编号,值是牌
2、创建ArrayList,存储编号
3、创建花色数组和点数数组
4、从0开始往HashMap里面存编号,并存储对应的牌,同时往ArrayList里存储编号
5、洗牌(洗的是编号),用Collections的shuffle()
6、发牌(发的也是编号,存到TreeSet里自动排序点数(看起来舒服))
7、定义方法看牌(遍历TreeSet集合,获取编号,到HashMap里 找到相应的牌)
8、调用看牌方法
思路图:
代码如下:
public class ddz {
public static void main(String[] args) {
// 1、创建HashMap,键是编号,值是牌
// 2、创建ArrayList,存储编号
HashMap<Integer,String> hm=new HashMap<Integer,String>();
ArrayList<Integer> array=new ArrayList<Integer>();
//3、创建花色数组和点数数组
String number[]={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
String color[]={"♥","♠","♣","♦"};
// 4、从0开始往HashMap里面存编号并存储对应的牌,同时往ArrayList里存储编号
int index=0;
for(String n:number)
{
for(String c:color)
{
hm.put(index,n+c);
array.add(index);
index++;
}
}
hm.put(index,"小王");
array.add(index);
index++;
hm.put(index,"大王");
array.add(index);
//5、洗牌(洗的是编号),用Collections的shuffle()
Collections.shuffle(array);
//6、发牌(发的也是编号,存到TreeSet里自动排序)
TreeSet<Integer> jison=new TreeSet<Integer>();
TreeSet<Integer> kangjia=new TreeSet<Integer>();
TreeSet<Integer> jack=new TreeSet<Integer>();
TreeSet<Integer> dipai=new TreeSet<Integer>();
for(int i=0;i<array.size();i++)
{
int x=array.get(i);//得到每个牌的编号
if(i>=array.size()-3)//最后三章牌
{
dipai.add(x);
}else if(i%3==0)
{
jison.add(x);
}else if(i%3==1)
{
kangjia.add(x);
}else if(i%3==2)
{
jack.add(x);
}
}
lookpoker("kangjia",kangjia,hm);
lookpoker("jison",jison,hm);
lookpoker("马云",jack,hm);
lookpoker("底牌",dipai,hm);
}
//7、定义方法看牌(遍历TreeSet集合,获取编号,到HashMap里 找到相应的牌)
public static void lookpoker(String name,TreeSet<Integer> ts, HashMap<Integer,String> hh)
{
System.out.println(name+"的牌是 :");
for (Integer In:ts)
{
String poker = hh.get(In);
System.out.print(poker+" ");
}
System.out.println();
}
}
运行结果如下:
每次运行结果都不一样,是因为使用了Collections接口里的shuffle()实现洗牌功能。
觉得写的不错的给个赞吧。