28-12-2015, 08:53 PM
"passer" l'action... le joueur veut que le jeu "exécute" une action donnée?
A mon avis, si les checks peuvent être "croisés" entre différentes actions (ie, les checks de l'action "Discuter" sont similaires à ceux de "Acheter"), alors il faut 1 classe par check (avec, au besoin, des classes composites, aka une classe qui utilise d'autres classes de Check pour faire son check). Ensuite, il ne reste plus qu'à instancier les checks "qui vont bien" pour la requête donnée.
Au besoin, une nouvelle classe "CheckedAction" peut être créée, et prendre en paramètre 1 classe Check et 1 classe Action (ne passe pas par des traits: fait 1 interface "IAction", implémentée dans différentes classes, chacune représentant une action). Cette classe aura alors à appeler le Check (pareil, 1 interface "ICheck" implémentée par chacun des checks), et en fonction de son résultat, elle exécute ou non l'IAction.
A mon avis, avec des schéma et du code, je comprendrai mieux ton soucis
A mon avis, si les checks peuvent être "croisés" entre différentes actions (ie, les checks de l'action "Discuter" sont similaires à ceux de "Acheter"), alors il faut 1 classe par check (avec, au besoin, des classes composites, aka une classe qui utilise d'autres classes de Check pour faire son check). Ensuite, il ne reste plus qu'à instancier les checks "qui vont bien" pour la requête donnée.
Au besoin, une nouvelle classe "CheckedAction" peut être créée, et prendre en paramètre 1 classe Check et 1 classe Action (ne passe pas par des traits: fait 1 interface "IAction", implémentée dans différentes classes, chacune représentant une action). Cette classe aura alors à appeler le Check (pareil, 1 interface "ICheck" implémentée par chacun des checks), et en fonction de son résultat, elle exécute ou non l'IAction.
A mon avis, avec des schéma et du code, je comprendrai mieux ton soucis