// モンスターの属性を示すEnumクラス
//
// 今回のデザインパターンと直接関係ありませんが、
// 共通の定数を使用するため定義します。
public enum MonsterAttributeEnum {
normal(0),
fire(1),
water(2),
grass(3),
dragon(4);
private int id;
public final static int ATTRIBUTE_TOTAL_NUMBER = 5; // 属性の総数
private MonsterAttributeEnum (int id) {
this.id = id;
}
public int getId() {
return id;
}
public static MonsterAttributeEnum valueOf(int id) {
MonsterAttributeEnum[] array = values();
for(MonsterAttributeEnum num : array) {
if (id == num.getId()){
return num;
}
}
return null;
}
// 倒せるかどうかの判定
public static boolean defeatJudge
(MonsterAttributeEnum monsterAttributeEnumAlly,
MonsterAttributeEnum monsterAttributeEnumEnemy) {
boolean[][] result = new boolean
[ATTRIBUTE_TOTAL_NUMBER][ATTRIBUTE_TOTAL_NUMBER];
result[normal.getId()][normal.getId()] = true;
result[normal.getId()][fire.getId()] = false;
result[normal.getId()][water.getId()] = false;
result[normal.getId()][grass.getId()] = false;
result[normal.getId()][dragon.getId()] = false;
result[fire.getId()][normal.getId()] = true;
result[fire.getId()][fire.getId()] = false;
result[fire.getId()][water.getId()] = false;
result[fire.getId()][grass.getId()] = true;
result[fire.getId()][dragon.getId()] = false;
result[water.getId()][normal.getId()] = true;
result[water.getId()][fire.getId()] = true;
result[water.getId()][water.getId()] = false;
result[water.getId()][grass.getId()] = false;
result[water.getId()][dragon.getId()] = false;
result[grass.getId()][normal.getId()] = true;
result[grass.getId()][fire.getId()] = false;
result[grass.getId()][water.getId()] = true;
result[grass.getId()][grass.getId()] = false;
result[grass.getId()][dragon.getId()] = false;
result[dragon.getId()][normal.getId()] = true;
result[dragon.getId()][fire.getId()] = true;
result[dragon.getId()][water.getId()] = true;
result[dragon.getId()][grass.getId()] = true;
result[dragon.getId()][dragon.getId()] = true;
return result
[monsterAttributeEnumAlly.getId()]
[monsterAttributeEnumEnemy.getId()];
}
}
コメント