案例:斗地主游戏(事先发牌)
需求:
在启动游戏房间之前,应该提前准备好54张牌,后续才可以直接使用这些这些牌的数据。
分析:
(1)该房间只需要一副牌
(2)定义一个静态的ArrayList集合存储54张牌对象,静态的集合只会加载一份
(3)在启动游戏房间之前,应该将54张牌初始化好
(4)当系统启动的同时需要准备好54张牌的数据,此时可以用静态代码块完成
代码展示:
/**
1.定义一个静态的集合,这样这个集合只会加载一个,因为当前房间也只需要一副牌
*/
public static ArrayList<String> cards = new ArrayList<>();
/**
2.在程序真正运行main方法前,把54张牌放进去,后续游戏可以直接使用
*/
static {
//3.正式做牌: 放到集合中去
//a.定义一个数组存出全部点数
String[] sizes = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
//b.定义一个数组存储全部的花色
String[] colors = {"♥", "♠", "♦", "♣"};
//c.遍历点数
for (int i = 0; i < sizes.length; i++) {
//sizes[i]
//d.遍历花色
for (int j = 0; j < colors.length; j++) {
//colors[j]
//一张牌
String card = sizes[i] + colors[j];
cards.add(card);
}
}
//e.单独加入大小王
cards.add("小王");
cards.add("大王");
}
public static void main(String[] args) {
System.out.println("新牌: " + cards);
}运行结果:

![]()
![]()
版权声明:本文为weixin_52309279原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。