package jihe;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class Ddzsjb {
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 = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
//从0开始往HashMap添加编号和牌 同时往ArrayList也添加编号
int index =0;
for(String n:numbers) {
for(String c:colors) {
hm.put(index, c+n);
array.add(index);
index++;
}
}
hm.put(index, "大王");
array.add(index);
index++;
hm.put(index, "小王");
array.add(index);
//洗牌 洗的牌编号
Collections.shuffle(array);
//发牌 为了发的编号是排序的用TreeSet集合
//创建三个玩家对象
TreeSet<Integer> a1=new TreeSet<Integer>();
TreeSet<Integer> a2=new TreeSet<Integer>();
TreeSet<Integer> a3=new TreeSet<Integer>();
//创建底牌对象
TreeSet<Integer> dp=new TreeSet<Integer>();
for(int i=0;i<array.size();i++) {
Integer d=array.get(i);//得到每一张牌
if(i>=array.size()-3) {
dp.add(d);
}
else if(i%3==0) { //n个玩家就用i%n
a1.add(d);
}
else if(i%3==1) {
a2.add(d);
}
else if(i%3==2) {
a3.add(d);
}
}
//看牌
//调用看牌的方法
look("张三",a1,hm);
look("李四",a2,hm);
look("王二",a3,hm);
look("底牌",dp,hm);
}
//定义看牌的方法
public static void look(String name,TreeSet<Integer> ts,HashMap<Integer,String> hm) {
System.out.print(name+"的牌是:");
for(Integer key:ts) {
String p=hm.get(key); //获取HashMap的值即“牌”
System.out.print(p+" ");
}
System.out.println();
}
}
Java简单的实现斗地主的洗牌、发牌、看牌(按顺序)
最新推荐文章于 2024-05-26 17:21:44 发布