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