1

Je cherche un modèle de conception ou un moyen d'utiliser un cadre de ressort qui me permettra d'avoir un ensemble de règles ou d'instructions basées sur le niveau de difficulté du jeu. Je les aurais dans une configuration de ressort et j'utiliserais des profils mais le problème est qu'ils doivent être définis lors de l'exécution. Toute aide est appréciée.Spring Framework - Modèle de conception pour créer un moteur de règles pour le jeu

Le problème est que je continue passer cet objet contexte ci-dessous:

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

} 

Répondre

3

cadre Easyrules est tout à fait simple et efficace, vous pouvez intégrer avec ressort très facilement. Puisqu'il s'agit d'un cadre basé sur le moment, je pense que cela vous aidera dans votre objectif.

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

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

+0

J'aime l'idée, mais comment ce serait une bonne façon de stocker les configs? Comme le problème est que si vous chargez les configs d'une certaine façon comme Carte Carte Carte Cela devient encore un peu une odeur. Je ne sais pas comment gérer le chargement des configs. Comme disent les cartes ont été chargées via @Configuration ou quelque chose. Fondamentalement juste à la recherche d'une façon strategey/propre pour charger les configs maintenant que j'aime cette solution. – CoffeeIsProgramming

+0

Puisque le niveau de difficulté dépend de l'utilisateur, vous pouvez créer différentes classes de règles pour différents niveaux de difficulté et les utiliser dans la classe principale. Juste une idée, vous conseillant de réfléchir attentivement. Vous allez trouver une solution. – Avinash