List<String> list = new ArrayList<String>();
String[] SE = {"♥","♠","♣","♦"}; //若两副牌 SE 再加一边 大小王再加一遍
String[] pValue = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for (int i = 0; i < SE.length; i++) { //组合花和值 并添加
for (int j = 0; j < pValue.length; j++) {
list.add(SE[i]+pValue[j]);
}
}
list.add("BKing"); //添加大小王
list.add("Lking"); //添加牌 到list中
Collections.shuffle(list); //洗牌
Map<Integer, String> map = new HashMap<Integer, String>();
for (int i = 0; i < list.size(); i++) { //将牌与map的key值关联 没用到 排序则可能用到
map.put(i, list.get(i));
}
List<String> keys = new ArrayList<String>(); //将组合好的重新整合到list中
for (int i = 0; i < map.size(); i++) {
keys.add(map.get(i));
}
List<String> player0 = new ArrayList<String>(); //分别创建玩家数+1个接受的容器
List<String> player1 = new ArrayList<String>();
List<String> player2 = new ArrayList<String>(); //底牌
List<String> player3 = new ArrayList<String>();
for (int i = 0; i < 3; i++) { //底牌X张
player2.add(keys.remove(i)); //移除的同时获得了返回值
}
while(!keys.isEmpty()) { //发玩家牌
if (!keys.isEmpty()) {
player0.add(keys.remove(0)); //remove返回值可以被得到
}
if (!keys.isEmpty()) {
player1.add(keys.remove(0));
}
if (!keys.isEmpty()) {
player3.add(keys.remove(0));
}else break;
}
System.out.println(player2);
System.out.println(player0);
System.out.println(player1);
System.out.println(player3);
Java专题 Map方法 斗地主发牌案例编写
最新推荐文章于 2024-07-24 17:27:32 发布