package demo04;
import java.util.*;
/*
模拟斗地主 洗牌,发牌
1,创建牌面
&& ##
♣ ♦ ♥ ♠(黑红梅方)
1 2 3...J Q K
V && ## 2♠ 2♥ .... 3♣ 3♦
K 1 2 3 4 .....53 54
2,洗牌
1,获取键的集合----set<>
2,将set集合转为list集合
3,Collections.shuffle(List<?> list)
3,发牌
1,创建3个玩家集合+ 1个底牌集合
2,发编号(k)
3,通过编号 显示牌面 (通过k---v)
创建三个玩家 打印一下 他们手中 牌面
*/
public class Demo01 {
public static void main(String[] args) {
//创建牌面 集合
Map<Integer,String>pMap=new HashMap<>();
//颜色集合
List<String>colors=new ArrayList<>();
//数字集合
List<String>nums=new ArrayList<>();
//添加颜色
Collections.addAll(colors,"♠","♥","♣","♦");
Collections.addAll(nums,"2","1","K","Q","J","10","9","8","7","6","5","4","3");
int count=0;
pMap.put(count++,"&&");
pMap.put(count++,"##");
for (String n:nums) {
for (String c : colors) {
{
String p=c+n;
pMap.put(count++,p);
}
}
}
System.out.println(pMap);
//洗牌
Set<Integer> keyps = pMap.keySet();
List<Integer>keylist=new ArrayList<>();
keylist.addAll(keyps);
//set集合 转成list集合
Collections.shuffle(keylist);
System.out.println(keylist);
//发牌
ArrayList<Integer>w1=new ArrayList<>();
ArrayList<Integer>w2=new ArrayList<>();
ArrayList<Integer>w3=new ArrayList<>();
ArrayList<Integer>dp=new ArrayList<>();
for (int i = 0; i < keylist.size(); i++) {
//牌号
Integer no=keylist.get(i);
if (i>=51)
{
//最后三张牌
dp.add(no);
}else if(i%3==0)
{
w1.add(no);
}else if (i%3==1)
{
w2.add(no);
}else {
w3.add(no);
}
}
Collections.sort(w1);
Collections.sort(w2);
Collections.sort(w3);
Collections.sort(dp);
//变成牌
ArrayList<String>w1p=new ArrayList<>();
ArrayList<String>w2p=new ArrayList<>();
ArrayList<String>w3p=new ArrayList<>();
ArrayList<String>dpp=new ArrayList<>();
for (Integer n:w1)
{
//根据k 获取 v
String card=pMap.get(n);
w1p.add(card);
}
for (Integer n:w2)
{
//根据k 获取 v
String card=pMap.get(n);
w2p.add(card);
}
for (Integer n:w3)
{
//根据k 获取 v
String card=pMap.get(n);
w3p.add(card);
}
for (Integer n:dp)
{
//根据k 获取 v
String card=pMap.get(n);
dpp.add(card);
}
System.out.println(w1p);
System.out.println(w2p);
System.out.println(w3p);
System.out.println(dpp);
}
}