A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

马瑞_u9n12

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

本帖最后由 马瑞_u9n12 于 2015-12-27 18:41 编辑
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.HashMap;
  4. import java.util.TreeSet;

  5. //* 模拟斗地主洗牌和发牌并对牌进行排序的代码实现
  6. public class Demo5 {
  7. public static void main(String[] args) {
  8.         //先定义一幅牌  用 hashmap集合 定义

  9.         String[] num = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
  10.         String[] color = {"方片","梅花","红桃","黑桃"};
  11.         HashMap<Integer, String> hm = new HashMap<>();  //存储索引和扑克牌
  12.         
  13.          ArrayList<Integer> list = new ArrayList<>();  //存储索引 洗牌 洗到低还是洗的索引值
  14.         int  index = 0 ; //定义索引值为0;
  15.          for(String s1: num){
  16.                  for(String s2: color){
  17.                          hm.put(index, s2.concat(s1) );
  18.                         //将索引和扑克牌添加到hashmap 中
  19.                          list.add(index);
  20.                  index++;
  21.          }
  22. }
  23.          hm.put(index, "小王");
  24.          list.add(index);
  25.          index++;
  26.          hm.put(index, "大王");
  27.          list.add(index);
  28.          //洗牌
  29.          Collections.shuffle(list);
  30.          //发牌 因为 treeSet 集合的 排序 和 无重复特点 所以用他
  31.          TreeSet<Integer>  gaojin = new TreeSet<>();
  32.          TreeSet<Integer>  longwu = new TreeSet<>();
  33.          TreeSet<Integer>  me     = new TreeSet<>();
  34.          TreeSet<Integer>  dipai  = new TreeSet<>();
  35.          for(Integer i: list){
  36.                  if( i >=list.size()-3){
  37.                          dipai.add(list.get(i));
  38.                  }
  39.                  else if(i%3==0){
  40.                          gaojin.add(list.get(i));
  41.                  }else if(i%3==1){
  42.                          longwu.add(list.get(i));
  43.                  }else {
  44.                          me.add(list.get(i));
  45.                  }
  46.          }
  47.          //看牌 定义方法  看牌的过程就是通过键找值的过程
  48.          //lookpai(String ,高进,hm);
  49.         /*for (Integer i : dipai) {
  50.                 System.out.println("dipaishi"+hm.get(i));
  51.         }*/
  52.          lookpai("高进",gaojin,hm);
  53.          lookpai("龙五",longwu,hm);
  54.          lookpai("我的",me,hm);
  55.          lookpai("底牌",dipai,hm);
  56.          
  57. }
  58.   public static void lookpai (String names, TreeSet<Integer> ts,  HashMap<Integer, String>hm ){
  59.           System.out.print(names+"的牌是");
  60.           for (Integer key : ts) {
  61.                  System.out.print(hm.get(key)+" ");
  62.                
  63.         }
  64.           System.out.println();
  65.   }
  66. }

复制代码

评分

参与人数 1黑马币 +12 收起 理由
雨来 + 12 赞一个!

查看全部评分

2 个回复

倒序浏览
没有开玩的过程,加上就更好了
回复 使用道具 举报
牛赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马