本帖最后由 枕草虫 于 2015-9-6 15:32 编辑
- package Test;
- import java.util.*;
- /**
- * 思路:
- * 1、 建立54张牌,然后存放到List集合当中打乱
- * 2、 将54张牌遍历致51号,分别存入3个TreeSet集合当中,将剩下的存入令一个集合当中
- * 3、 遍历3个集合,与底牌集
- * 然而输出的时候,顺序不对
- *
- * 那么想到楼主的思路,先建立一个从小到大顺序的集合,然后将打乱的脚标 分给三个玩家
- *
- *思路:
- *1、建立牌堆:建立ArrayList集合,将数字+花色 作为一个元素 按照从3-K-A-2,还有小王,大王的顺序存储到集合当中
- *2、发牌:建立一个脚标集合,利用Collections.shuffle(list)方法,然后将打乱的脚标分给三个玩家,然后拿着分好的脚标去牌堆中找元素
- *3、因为最后输出还是要排序,所以玩家使用TreeSet集合
- * */
- public class PockeDemo {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //建立牌堆
- List<String> li = creatPoker();
-
- //建立脚标集合
- ArrayList<Integer> al = new ArrayList<Integer>();
- for(int i = 0 ;i < 54; i++)
- al.add(i);
- //打乱脚标集合的顺序
- Collections.shuffle(al);
-
- //将脚标分给三个玩家
- TreeSet<Integer> gamer1 = new TreeSet<Integer>();
- TreeSet<Integer> gamer2 = new TreeSet<Integer>();
- TreeSet<Integer> gamer3 = new TreeSet<Integer>();
- TreeSet<Integer> dipai = new TreeSet<Integer>();
-
- fenPeiIndex(al,gamer1,gamer2,gamer3,dipai);
-
-
- //遍历每个玩家的脚标,并到洗好的牌中去找
- System.out.println("玩家1:");
- zhuaPai(li,gamer1);
- System.out.println();
-
- System.out.println("玩家2:");
- zhuaPai(li,gamer2);
- System.out.println();
-
- System.out.println("玩家3:");
- zhuaPai(li,gamer3);
- System.out.println();
-
- System.out.println("底牌:");
- zhuaPai(li,dipai);
-
- }
-
-
- //建立顺序的牌
- public static List<String> creatPoker(){
- ArrayList<String> al = new ArrayList<String>();
-
- String[] color = {"♦","♣","♥","♠"};
- String[] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
-
- for(String s1 : num)
- for(String s2 : color)
- al.add(s1+s2);
-
- al.add("小王");
- al.add("大王");
-
- return al;
- }
- //分配脚标给玩家
- public static void fenPeiIndex(ArrayList<Integer> al,
- TreeSet<Integer> gamer1,
- TreeSet<Integer> gamer2,
- TreeSet<Integer> gamer3,
- TreeSet<Integer> dipai){
-
- int count = 0;
- for(int i : al){
- if(count<51){
- if(count%3 == 0)
- gamer1.add(i);
- else if(count%3 == 1)
- gamer2.add(i);
- else
- gamer3.add(i);
- }
- else
- dipai.add(i);
- count++;
- }
-
- }
- //抓牌
- public static void zhuaPai(List<String> li,TreeSet<Integer> gamer){
- for(int i : gamer){
- System.out.print(li.get(i)+"\t");
- }
- }
- }
复制代码
多谢楼主,学习了,来交作业
|