您的位置:首页 > 编程语言 > Java开发

JAVA实现斗地主(制牌,洗牌,发牌,看牌)集合完成

2019-07-01 00:34 441 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_39396379/article/details/94364819
package com.wcy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
public class DouDiZhu {

public static void main(String[] args){
String[] num = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
String[] color = {"♥","♠","♣","♦"};
HashMap<Integer, String> map = new HashMap<>();
//存放Map集合的Key值
ArrayList<Integer> li = new ArrayList<Integer>();
//记录制作出牌的数量
int i = 0;
//制作52张牌
for (String s1 : num) {
for (String s2 : color) {
map.put(i,s2+s1);
//将制作的牌放入ArrayList集合中
li.add(i);
i++;
}
}
//制作大小王
map.put(i, "大王");
li.add(i);
i++;
map.put(i, "小王");
li.add(i);
//测试制作的牌
System.out.println(map);
System.out.println(li);
//洗牌
Collections.shuffle(li);
System.out.println(li);
//发底牌,将三张牌放入数组
ArrayList<Integer>bottom =new ArrayList<Integer>();
for (int j = 0; j < 3; j++) {
bottom.add(li.remove(0));
}
//创建三个集合放牌
ArrayList<Integer> p1 = new ArrayList<>();
ArrayList<Integer> p2 = new ArrayList<>();
ArrayList<Integer> p3 = new ArrayList<>();
while(!li.isEmpty()) {
p1.add(li.remove(0));
p2.add(li.remove(0));
p3.add(li.remove(0));
}
//给每个人齐牌
Collections.sort(p1);
Collections.sort(p2);
Collections.sort(p3);
System.out.println(bottom);
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
//看牌
System.out.println("底牌:"+KanPai(bottom,map));
System.out.println("玩家1:"+KanPai(p1,map));
System.out.println("玩家2:"+KanPai(p2,map));
System.out.println("玩家3:"+KanPai(p3, map));
}
//看牌方法
public static String KanPai(List<Integer> li,HashMap<Integer, String> map) {
StringBuilder s =new StringBuilder();
//遍历每个集合 得到对应的值
for (int x : li) {
String st=map.get(x);
s.append(st).append("\t");
}
return s.toString();

}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: