package landlord;
import java.util.*;
public class Landlord {
public static void main(String[] args) {
List<Integer> list=new ArrayList<>();//
Map<Integer,String> map=new HashMap<>();
String brand[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};//牌的数字
String suit[]={"♥","♠","♦","♣"};//牌的花色
int index=0;//用于储存54张牌
for(String s: brand){
for (String b:suit){
map.put(index,s+b);//把带花色的牌放进map
list.add(index);//放进一张牌,list下标就会+1,一共54张牌,index++了54次
index++;
}
}
//处理大王小王
map.put(52,"大王");
map.put(53,"小王");
list.add(52);
list.add(53);
Collections.shuffle(list);//打乱牌的顺序 list 0-53;
//找到3个人打牌
List<Integer> p1 = new ArrayList<>(); //第1人
List<Integer> p2 = new ArrayList<>(); //第2人
List<Integer> p3 = new ArrayList<>(); //第3人
List<Integer> bottom = new ArrayList<>(); //底牌
//发牌开始了
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,map);
show("老二",p2,map);
show("老三",p3,map);
show("底牌",bottom,map);
}
private static void show(String name, List<Integer> list, Map<Integer, String> map) {
//自动排序
Collections.sort(list);
//list就是map的下标,理解这个就很容易理解代码
System.out.print(name+" ");
for (Integer in:list){
String s = map.get(in);
System.out.print(s+" ");
}
System.out.println();
}
}
JAVA中如何写都斗地主?
最新推荐文章于 2023-08-23 12:27:55 发布