黑马程序员技术交流社区

标题: 集合的使用模拟斗地主 [打印本页]

作者: hero_king    时间: 2016-5-31 21:56
标题: 集合的使用模拟斗地主
终于把老师讲的斗地主程序写完了
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.HashMap;
  4. import java.util.Set;
  5. import java.util.TreeMap;

  6. /*
  7. * 模拟斗地主
  8. */
  9. public class Demo4 {
  10.         public static void main(String[] args) {
  11.                 // 创建牌盒
  12.                 HashMap<Integer, String> hm = new HashMap<>();

  13.                 // 创建一个序号集合
  14.                 ArrayList<Integer> al = new ArrayList<>();

  15.                 // 创建花色和数值数组
  16.                 String[] arr1 = { "♦", "♣", "♥", "♠" };
  17.                 String[] arr2 = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
  18.                                 "K", "A", "2" };

  19.                 // 将牌装入牌盒
  20.                 int num = 0;
  21.                 for (int i = 0; i < arr2.length; i++) {
  22.                         for (int j = 0; j < arr1.length; j++) {
  23.                                 num++;
  24.                                 al.add(num);
  25.                                 StringBuilder sb = new StringBuilder();
  26.                                 String s = sb.append(arr1[j]).append(arr2[i]).toString();
  27.                                 hm.put(num, s);
  28.                         }
  29.                 }

  30.                 // 装入大小王
  31.                 num++;
  32.                 al.add(num);
  33.                 hm.put(num, "小王");
  34.                 num++;
  35.                 al.add(num);
  36.                 hm.put(num, "大王");

  37.                 // 洗牌
  38.                 Collections.shuffle(al);

  39.                 // 发牌,创建三个人的手牌
  40.                 TreeMap<Integer, String> tm1 = new TreeMap<>();
  41.                 TreeMap<Integer, String> tm2 = new TreeMap<>();
  42.                 TreeMap<Integer, String> tm3 = new TreeMap<>();
  43.                 TreeMap<Integer, String> tm4 = new TreeMap<>();

  44.                 // 发牌
  45.                 for (int i = 0; i <al.size(); i++) {
  46.                         if (i >= 51) {
  47.                                 tm4.put(al.get(i), hm.get(al.get(i)));
  48.                         } else if (i % 3 == 0) {
  49.                                 tm1.put(al.get(i), hm.get(al.get(i)));
  50.                         } else if (i % 3 == 1) {
  51.                                 tm2.put(al.get(i), hm.get(al.get(i)));
  52.                         } else if (i % 3 == 2) {
  53.                                 tm3.put(al.get(i), hm.get(al.get(i)));
  54.                         }
  55.                 }

  56.                 // 看牌
  57.                 look("我", tm1);
  58.                 look("你", tm2);
  59.                 look("老师", tm3);
  60.                 look("底牌", tm4);
  61.         }

  62.         private static void look(String string, TreeMap<Integer, String> tm1) {
  63.                 Set<Integer> set = tm1.keySet();
  64.                 System.out.print(string + "的牌:");
  65.                 for (Integer i : set) {
  66.                         String value = tm1.get(i);
  67.                         System.out.print(value + ",");
  68.                 }
  69.                 System.out.println();
  70.         }
  71. }
复制代码


作者: 骄阳登峰    时间: 2016-5-31 22:10
不错不错.赞一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2