所以,我有一个代表游戏板(4x4)的类,每个空间都是骰子的面值,内部由数组列表表示。我应该实现工厂方法来生成板。
public class Board {
static ArrayList<Die> board = new ArrayList<Die>();
public static Board makeFixedBoard(DiceManager dice) {
for (int i = 0; i < 16; i++) {
//add faces
}
return new Board();
}
}
但是,我很难准确理解如何实现工厂方法。在这里,我的回报是一个新的板,但这只是创建一个新的空板,而不是我生成的那个。
这是模具类
public class Die {
char[] faces = new char[6];
char facevalue;
public Die(char side1, char side2, char side3, char side4, char side5, char side6){
faces[0] = side1;
faces[1] = side2;
faces[2] = side3;
faces[3] = side4;
faces[4] = side5;
faces[5] = side6;
facevalue = faces[0];
}
public void roll() {
int roll = 0 + (int)(Math.random() * 6);
facevalue = faces[roll];
}
public char getValue() {
return facevalue;
}