我目前正在使用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英语。