扑克牌发牌洗牌代码
package com.lkw;
import java.util.*;
public class testClass11 {
//定义扑克牌为Map集合
static Map<Integer, String> bround = new LinkedHashMap<>();
//定义三个map玩家
static Map<Integer, String> person1Bround = new TreeMap<>();
static Map<Integer, String> person2Bround = new TreeMap<>();
static Map<Integer, String> person3Bround = new TreeMap<>();
static int num = 1;
public static void main(String[] args) {
//定义花色数组
String[] colors = {"黑桃", "红桃", "梅花", "方块"};
//定义牌面
String[] faces = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
//定义大小王
String[] kings = {"小王", "大王"};
//循环两个数组,使牌加入到扑克牌当中
for (String face : faces) {
for (String color : colors) {
bround.put(num++, color + face);
}
}
//装入大小王
for (String king : kings) {
bround.put(num++, king);
}
//把顺序取出来打乱
List<Integer> integers = new ArrayList<>(bround.keySet());
//打乱牌库顺序
Collections.shuffle(integers);
//循环随机数,用于发牌
for (int i = 0; i < integers.size(); i++) {
Integer integer = integers.get(i);
if (i >= 51) {
//剩三张底牌
//三个人手牌当中有黑桃三的抓地主
if (person1Bround.containsKey(1)) {
person1Bround.put(integer, bround.get(integer));
} else if (person2Bround.containsKey(1)) {
person2Bround.put(integer, bround.get(integer));
} else if (person3Bround.containsKey(1)) {
person3Bround.put(integer, bround.get(integer));
} else {
person1Bround.put(integer, bround.get(integer));
}
} else {
if (i % 3 == 0) {
person1Bround.put(integer, bround.get(integer));
} else if (i % 3 == 1) {
person2Bround.put(integer, bround.get(integer));
} else {
person3Bround.put(integer, bround.get(integer));
}
}
}
Collection<String> values1 = person1Bround.values();
Collection<String> values2 = person2Bround.values();
Collection<String> values3 = person3Bround.values();
System.out.println(values1);
System.out.println(values2);
System.out.println(values3);
}
}