Spring Framework - 为游戏创建规则引擎的设计模式
问题描述:
我正在寻找一种设计模式或使用弹簧框架的方法,这将允许我根据游戏难度级别制定一套规则或说明。我会让他们在弹簧配置中使用配置文件,但问题是他们需要在运行时定义。任何帮助表示赞赏。Spring Framework - 为游戏创建规则引擎的设计模式
的问题变成我刚路过低于这个上下文对象:
public class Game {
private MapMaker mapmaker;
@Autowired
public(MapMaker mapmaker){
this.mapmaker = mapmaker;
}
public void createGame(DifficulyLevel level){
Boss myBoss = getBoss(difficultyLevel);
BossWeapon = getBossWeapon(difficultyLevel);
MapInstructions mapInstructions = getMapConstructionInstructions(diffcultyLevel);
mapmaker.makemap(mapInstructions);
}
}
答
Easyrules框架是非常简单而有效的,你可以用弹簧很容易地集成。因为它是基于时间的框架,我认为它会帮助你达到你的目的。
@Rule(name = "dummy rule")
public class DummyRule {
@Condition
public boolean when() {
return true;
}
@Action
public void then(){
System.out.println("Hey, I'm managed by Spring");
}
}
我喜欢这个主意,但怎么会是什么存储CONFIGS的好办法? 像问题是,如果你正在加载的CONFIGS以某种方式像 地图 地图 地图 这仍然成为怎样的一个味道。不知道如何处理加载配置。就像说地图是通过@Configuration或其他东西加载的。基本上只是寻找战略/干净的方式来加载配置,因为我喜欢这个解决方案。 –
CoffeeIsProgramming
由于难度级别取决于用户,因此您可以针对不同的难度级别创建不同的规则类,并在主类中使用它们。只是一个想法,建议你仔细思考。你会想出一个解决方案。 – Avinash