package com.youjiuye.landloards;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
/**
*
* @author 丢了风筝的线
* @see 模拟斗地主的洗牌发牌
*/
public class Poker {
public static void main(String[] args) {
// 存储扑克牌的数字
String[] num = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2" };
String[] color = { "黑桃", "红桃", "梅花", "方块" };
// 存储整幅牌
Map<Integer, String> poker = new HashMap<Integer, String>();
// 存储每张牌的编号
List<Integer> nob = new ArrayList<Integer>();
int i = 0;
for (String pokernum : num) {
for (String pokercolor : color) {
poker.put(i, pokercolor + pokernum);
nob.add(i);
i++;
}
}
// 添加大王
poker.put(i, "大王");
nob.add(i);
// 添加小王
poker.put(i + 1, "小王");
nob.add(i);
// 存放玩家的牌,实际存放的是从list中拿到的索引
Set<Integer> helaoban = new TreeSet<Integer>();
Set<Integer> wanxiaopi = new TreeSet<Integer>();
Set<Integer> me = new TreeSet<Integer>();
// 存放底牌
Set<Integer> dipai = new TreeSet<Integer>();
// 洗牌
Collections.shuffle(nob);
// 发牌
for (int no = 0; no < nob.size(); no++) {
if (no >= nob.size() - 3) {
dipai.add(nob.get(no));
} else {
if (no % 3 == 0) {
helaoban.add(nob.get(no));
} else if (no % 3 == 1) {
wanxiaopi.add(nob.get(no));
} else {
me.add(nob.get(no));
}
}
}
// 看牌
System.out.print("helaoban: ");
lookpoker(helaoban, poker);
System.out.println();
System.out.print("waniaopi: ");
lookpoker(wanxiaopi, poker);
System.out.println();
System.out.print("me : ");
lookpoker(me, poker);
System.out.println();
System.out.print("dipai : ");
lookpoker(dipai, poker);
}
// 看牌,遍历每一个TreeSet集合,然后拿到对用的牌
public static void lookpoker(Set<Integer> st, Map<Integer, String> hm) {
for (Integer integer : st) {
System.out.print(hm.get(integer) + " ");
}
}
}
java模拟斗地主
最新推荐文章于 2022-10-12 15:56:48 发布