实现思路:
1. List集合存储 54个编号
2. Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2
3. 用2个数组 存放 花色+ 13张牌
4. 将牌的信息 存入到 list和map
5. 发牌了... (需要打乱顺序)
6. 看一下 自己是什么牌 (看牌)
实现代码:
public static void main(String[] args) {
//新建一个集合存除54个编号
List<String> list = new ArrayList<>();
//新建一个map集合存储扑克牌信息
List<String> colors = new ArrayList<>();
colors.add("♥");
colors.add("♠");
colors.add("♦");
colors.add("♣");
List<String> numbers = new ArrayList<>();
numbers.add("A");
numbers.add("2");
numbers.add("3");
numbers.add("4");
numbers.add("5");
numbers.add("6");
numbers.add("7");
numbers.add("8");
numbers.add("9");
numbers.add("10");
numbers.add("J");
numbers.add("Q");
numbers.add("K");
int index = 0;
for(String num : numbers){
for (String col : colors){
list.add(num+col);
}
}
list.add("大王");
list.add("小王");
Collections.shuffle(list);
//设置玩家和底牌
List<String> p1 = new ArrayList<>();
List<String> p2 = new ArrayList<>();
List<String> p3 = new ArrayList<>();
List<String> bottom = new ArrayList<>();
Collections.shuffle(list);
//5. 发牌了... (需要打乱顺序)
for (int i = 0; i < list.size(); i++) {
//先取出底牌
if(i<3){
bottom.add(list.get(i));
}else if(i%3 == 0){
p1.add(list.get(i));
}else if(i%3 == 1){
p2.add(list.get(i));
}else {
p3.add(list.get(i));
}
}
//看牌
show("张三",p1);
show("李四",p2);
show("王五",p3);
show("底牌",bottom);
}
private static void show(String name, List<String> list) {
System.out.print(name+": ");
for (int i = 0; i <list.size() ; i++) {
System.out.print(list.get(i)+",");
}
System.out.println();
}