标签: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