需求:
在启动房间游戏的时候,应该提前准备好54张牌,后续才可以直接使用这些牌数据。
分析:
1、该房间只需要一张牌
2、定义一个静态的ArrayList集合存储54张牌,静态的集合只会加载一份。
3、在启动游戏房间前,应该将54张牌初始化好。
4、当系统启动的同时需要准备好54张牌数据,此时可以使用动态代码块完成。
package com.itheima.demo;
import java.util.ArrayList;
public class Fight {
/**
* 模拟初始化操作
* 点数:"2","A","K","Q","J","10","9","8","7","6","5","4","3"
* 花色:"♠","♣","♥","♦"
* 1、准备一个容器,存储54张牌,这个容器建议使用静态的集合。静态的集合只加载一次。
*/
public static ArrayList<String> cards=new ArrayList<>();
/**
* 2、在游戏启动之前需要准备好54张牌放进去,使用静态代码块进行初始化
*/
static {
//3、加载54张牌进去
//4、准备四种花色:类型确定,个数确定
String[] colors={"♠","♣","♥","♦"};
//5、定义点数
String[] sizes={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
//6、先遍历点数再遍历花色
for (int i = 0; i < sizes.length; i++) {
for (int i1 = 0; i1 < colors.length; i1++) {
cards.add(sizes[i]+colors[i1]);
}
}
//7、添加大小王
cards.add("大王");
cards.add("小王");
}
public static void main(String[] args) {
System.out.println("新牌:"+cards);
}
}
结果