学习完java的集合类,用HashMap,ArrayList,TreeSet实现了斗地主的一部分功能。
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Set;
import java.util.TreeSet;
public class PokerDemo {
public static void main(String[] args) {
String[] ShuZi= {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q","K"};
String[] HuaSe= {"♦", "♣", "♥", "♠"};
// 创建扑克,数字-牌号,如1对应A♦
HashMap <Integer,String> poker=new HashMap<Integer,String>();
// 创建序列,存放数字,洗牌只需随机置换序列,然后给每个玩家分配数字,看牌就看对应扑克的值
ArrayList<Integer> bianhao=new ArrayList<Integer>();
// 得到一副新扑克
int order=0;
for(String x:ShuZi) {
for(String y:HuaSe) {
poker.put(++order, x.concat(y));
bianhao.add(order);
}
}
poker.put(++order, "小王");
bianhao.add(order);
poker.put(++order, "大王");
bianhao.add(order);
//遍历一遍
// traverse(poker);
// 三个玩家,底牌
TreeSet<Integer> play1=new TreeSet<Integer>();
TreeSet<Integer> play2=new TreeSet<Integer>();
TreeSet<Integer> play3=new TreeSet<Integer>();
TreeSet<Integer> dipai=new TreeSet<Integer>();
// 随机置换
Collections.shuffle(bianhao);
// 间隔发牌,增加随机率
for(int s=0;s<bianhao.size();s++) {
if(s>51) {
dipai.add(bianhao.get(s));
}
if(s%3==1) {
play1.add(bianhao.get(s));
}
if(s%3==2) {
play2.add(bianhao.get(s));
}
if(s%3==0) {
play3.add(bianhao.get(s));
}
}
System.out.println();
lookPoker("小明",play1,poker);
lookPoker("小辉",play2,poker);
lookPoker("小红",play3,poker);
}
public static void traverse(HashMap h) {
Set<Integer> temp=h.keySet();
for(int t:temp) {
System.out.print(h.get(t));
}
}
public static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer,String> hm) {
System.out.print(name+"的牌是: ");
for(int x:ts) {
System.out.print(hm.get(x)+",");
}
System.out.println();
}
}