标签:for highlight cas integer ipa static 分析 print []
不排序的:
package cn.idcast5; import java.util.ArrayList; import java.util.Collections; //模拟斗地主洗牌发牌 //分析 //A 创建一个牌盒 //B 装牌 //C 洗牌 //D 发牌 //E 看牌 public class Shiyue31 { public static void main(String[] args) { // 创建一个牌盒 ArrayList<String> array = new ArrayList<String>(); // 装牌 // 黑桃A,黑桃2,黑桃3…… // 红桃A…… // 方块A…… // 梅花A…… // 定义一个花色数组 String[] colors = { "?", "?", "?", "□" }; // 定义一个点数数组 String[] numbers = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" }; for (String color : colors) { for (String number : numbers) { array.add(color.concat(number)); } } array.add("小王"); array.add("大王"); // 洗牌 Collections.shuffle(array); // 发牌 ArrayList<String> zengjiao = new ArrayList<String>(); ArrayList<String> xiajiao = new ArrayList<String>(); ArrayList<String> sb = new ArrayList<String>(); ArrayList<String> dipai = new ArrayList<String>(); for (int x = 0; x < array.size(); x++) { if (x>=array.size()-3) { dipai.add(array.get(x)); } else if (x % 3 == 0) { zengjiao.add(array.get(x)); } else if (x % 3 == 1) { xiajiao.add(array.get(x)); } else if (x % 3 == 2) { sb.add(array.get(x)); } } // 看牌 lookPoker("曾饺",zengjiao); lookPoker("虾饺",xiajiao); lookPoker("傻逼",sb); lookPoker("底牌",dipai); } public static void lookPoker(String name, ArrayList<String> array) { System.out.println(name+"的牌是:"); for (String s :array) { System.out.print(s+" "); } System.out.println(); } }
排序后的:
package cn.idcast5; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.TreeSet; /*思路 * A 创建一个HashMap集合 * B 创建一个ArrayList集合 * C 创建花色数组和点数数组 * D 从0开始往HashMap里面存储编号,并存储对应的牌 * 同时往ArrayList里面存储编号 * E 洗牌(洗的是编号) * F 发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收) * G 看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌) */public class Shiyue3102 { public static void main(String[] args) { //创建一个HashMap集合 HashMap<Integer, String> hm = new HashMap<Integer,String>(); //创建一个ArrayList集合 ArrayList<Integer> array = new ArrayList<Integer>(); //创建花色数组和点数数组 String[] colors = { "?", "?", "?", "□" }; String[] numbers = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K","A", "2" }; //从0开始 int index = 0; for (String number :numbers) { for (String color :colors) { String poker = color.concat(number); //往HashMap里面存储编号,并存储对应的牌 hm.put(index, poker); //同时往ArrayList里面存储编号 array.add(index); index ++; } } hm.put(index, "小王"); array.add(index); index++; hm.put(index, "大王"); array.add(index); // 洗牌(洗的是编号) Collections.shuffle(array); //发牌(发的也是编号,为了保证编号是排序的,就创建TreeSet集合接收) TreeSet<Integer> zengjiao = new TreeSet<Integer>(); TreeSet<Integer> xiajiao = new TreeSet<Integer>(); TreeSet<Integer> sb = new TreeSet<Integer>(); TreeSet<Integer> dipai = new TreeSet<Integer>(); for (int x=0;x<array.size();x++) { if (x>= array.size()-3) { dipai.add(array.get(x)); } else if (x%3 ==0) { zengjiao.add(array.get(x)); } else if (x%3 ==1) { xiajiao.add(array.get(x)); } else if (x%3 == 2) { sb.add(array.get(x)); } } //看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌) lookPoker("曾饺",zengjiao,hm); lookPoker("虾饺",xiajiao,hm); lookPoker("傻逼",sb,hm); lookPoker("底牌",dipai,hm); } // 这里要的是名字,牌的编号,编号对应的牌 public static void lookPoker(String name,TreeSet<Integer> ts, HashMap<Integer, String> hm) { System.out.println(name+"的牌是:"); for (Integer key : ts) { String value = hm.get(key); System.out.print(value +" "); } System.out.println(); } }
标签:for highlight cas integer ipa static 分析 print []
原文地址:http://www.cnblogs.com/zengjiao/p/6017248.html