文章目录
集合应用-----------斗地主洗牌发牌
分析: 用HashMap<Integer,String>集合作为牌盒,key键存储牌的编号,value值存储牌
用ArrayList集合存储牌的编号,用作后面的发牌
定义String[] 存储牌的点数{“3”,“4”,“5”,“6”…“A”,“2”};
定义String[] 存储牌的花色{“♠”,“♥”,“♣”,“♦”};
定义int index=0,用作编号的存储
通过增强for循环嵌套,完成装除了大小王牌的操作,同时ArrayList集合中装入对应的编号
再添加大小王和对应的编号
//洗牌
利用Collections集合工具类中的public static void shuffle(List<?> list)随机置换ArrayList中牌的编码
创建四个TreeSet集合,分别代表玩家1,玩家2,玩家3,底牌
利用for循环语句将牌分别发给上面四个
编写看牌方法,将玩家的牌和底牌打印出来
代码如下:
package poker2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
import javax.swing.LookAndFeel;
public class Poker {
public static void main(String[] args) {
// TODO Auto-generated method stub
//牌盒 k存储编号 v存储牌
HashMap<Integer,String> hm=new HashMap<Integer,String>();
//存储编号
ArrayList<Integer> array=new ArrayList<Integer>();
//点数和花色数组
String[] num= {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
String[] colors= {"♠","♥","♣","♦"};
int index=0;
//装牌,装编号
for (String n : num) {
for (String c : colors) {
String str=c.concat(n);
hm.put(index, str);
array.add(index);
index++;
}
}
hm.put(52, "小王");
hm.put(53, "大王");
array.add(52);
array.add(53);
//洗牌
Collections.shuffle(array);
//发牌
TreeSet<Integer