2015-03-19 48 views
0

我目前正在使用Java和TCG(交易卡片遊戲)項目工作,我面臨一個大問題:實現卡片效果。現在,我已經想出瞭如何做到這一點,但是我在代碼方面遇到了一些麻煩。 我的想法是存儲在一個字符串某種類型的命令代碼,具有特定的關鍵字。例如:「傷害[目標] [值]」將允許我使用指定值傷害玩家或生物,「繪製[target] [numberOfCards]」將允許我從他的套牌中抽取一定數量的玩家的牌,「檢查[場] [球員] [條件]」將允許我檢查球員的場上是否會出現角球牌或特定生物等。 我創建了一個名爲Skill的類,它是:Java [TCG Project] - 使用標記字符串實現卡片效果

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類來解釋和excexute命令作爲參數int executeCommands方法。像「損害」,「檢查」,「繪製」等關鍵字我沒事,但我的問題是:我怎麼能實際取代字段與我想要使用的實際對象?我怎樣才能真正選擇對象?我正在考慮爲每個對象使用方法.toString(),並在GameTable類中創建一個方法,該方法返回的對象的Srting等於我給出的,但我無法弄清楚如何實現這一點。

提示我們感激。謝謝你,對不起我的壞話英語。

回答

0

有一種可以幫助你的設計模式,它被稱爲Interpreter。

結帳這個鏈接是什麼我談論:Interpreter Pattern

希望它能幫助!

+0

謝謝你隊友,我在看教程,似乎對這個問題有用。 真的很感激。 – AGSoldier 2015-03-19 00:52:52

+0

我很高興它幫助!如果你可以用這種模式解決你的問題,接受這個答案,讓更多的人可以看到它。 – 2015-03-19 02:18:58

+0

對不起,我是StackOverflow的新手。我是否要標記「檢查」標誌? – AGSoldier 2015-03-19 02:28:27