Java [TCG Project] - 使用标记化字符串实现卡片效果

时间:2015-03-19 00:37:24

标签: java

我目前正在使用Java工作TCG(交易卡游戏)项目,而我正面临一个大问题:实施卡片效果。现在,我已经知道如何才能做到这一点,但我在代码方面遇到了一些麻烦。 我的想法是在String中存储某种命令代码,并使用特定的关键字。例如:"损坏[目标] [价值]"将允许我损坏具有指定值的玩家或生物,"绘制[目标] [numberOfCards]"将允许我让玩家从他的牌组中抽取一定数量的牌,"检查[场] [牌手] [条件]"将允许我检查玩家的领域是否将是卡片或特定生物等。 我创建了一个名为Skill的类:

public class Skill {

    private String type;
    private int cost;
    private String desc;
    private String commands;

    public Skill(String type, int cost, String desc, String commands) {
        this.type = type;
        this.cost = cost;
        this.desc = desc;
        this.commands = commands;
    }

    public void use() {
        SkillManager.executeCommands(commands);
    }

}

现在,我想让SkillManager类解释并优先考虑executeCommands方法中作为参数给出的命令。使用"损坏","检查","绘制"等关键字我没关系,但我的问题是:我怎样才能真正替换字符串与我想要使用的实际对象?我怎样才能真正选择对象?我正在考虑为每个对象使用方法.toString(),并在GameTable类中创建一个方法,该方法返回带有Srting等于我给出的对象的Object,但我无法弄清楚如何实现此

小贴士表示赞赏。谢谢你,对不起我的BAD英语。

1 个答案:

答案 0 :(得分:0)

有一种设计模式可以帮助你,它的名为Interpreter。

查看此链接,了解我所说的内容:Interpreter Pattern

希望它有所帮助!