1

我正在寻找一种设计模式或使用弹簧框架的方法,这将允许我根据游戏难度级别制定一套规则或说明。我会让他们在弹簧配置中使用配置文件,但问题是他们需要在运行时定义。任何帮助表示赞赏。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);  
    } 

} 

回答

3

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"); 
    } 
} 

编号:http://www.easyrules.org/tutorials/spring-tutorial.html

+0

我喜欢这个主意,但怎么会是什么存储CONFIGS的好办法? 像问题是,如果你正在加载的CONFIGS以某种方式像 地图 地图 地图 这仍然成为怎样的一个味道。不知道如何处理加载配置。就像说地图是通过@Configuration或其他东西加载的。基本上只是寻找战略/干净的方式来加载配置,因为我喜欢这个解决方案。 – CoffeeIsProgramming

+0

由于难度级别取决于用户,因此您可以针对不同的难度级别创建不同的规则类,并在主类中使用它们。只是一个想法,建议你仔细思考。你会想出一个解决方案。 – Avinash