管理java游戏卡动作。怎么样?

时间:2016-04-19 17:39:09

标签: java eclipse

基本上我的问题与此问题相同: Card game with huge amount of cards and complex actions

但我不会说话或理解一个单词" C ++。 这是我的第一个大型java项目,我想实现一个交易卡游戏组件。 我的问题是:我计划使用100多种不同的卡,采取不同的行动。那里有4种主要类型。在这些类型中,卡片的动作类似但仍然不同。 我想过制作一个像

这样的额外课程
public class CardActionDatabase {
    public void card1Action(){}
    public void card2Action(){}
    ....
}

但问题是,我无法在实际代码中调用/调用它们,如

(playedcard.getName())Action()

因为在编译语言中这是不可能的。 所以基本上我必须"如果"最近打出了所有现有牌的牌,效率低下。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

我自己一直在搞乱纸牌游戏,这里有一些选择。因此,一种简单的方法(尽管可能不是最有效的)是:

首先,创建一个包含公共变量和方法的抽象类Card,例如String namepublic void onPlay()。然后,您可以为四种类型中的每一种创建另一个抽象子类。

然后,为游戏中的每张唯一卡片创建Card的子类。这些子类以自己的方式定义onPlay()。然后在你的玩家转向逻辑中,当玩家选择一张牌时,会调用该牌的onPlay方法。您甚至可以添加onDiscardonDestroyonTurnStart等内容。

您还可以考虑在“卡片”和“场/播放区域”之间创建控制器类。例如,您可能拥有一个HandController类,其中包含公开方法DiscardRandom()Discard(int index)Draw(),这些卡可以用来操纵游戏玩法。

管理适当执行操作所需的调用链可能会变得麻烦和复杂,但强大的文档会有很长的路要走。