Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
管理java游戏卡操作。怎么用?_Java_Eclipse - Fatal编程技术网

管理java游戏卡操作。怎么用?

管理java游戏卡操作。怎么用?,java,eclipse,Java,Eclipse,所以我的问题基本上和这个一样: 但是我不“C++”一词。 这是我的第一个大型java项目,我想实现一个交易卡游戏组件。 我的问题是:我计划使用100多张不同的卡,有不同的动作。将有4种主要类型。在这些类型中,卡的操作是相似的,但仍然不同。 我想多上一节课,比如 public class CardActionDatabase { public void card1Action(){} public void card2Action(){} .... } 但问题是,我不能

所以我的问题基本上和这个一样:

但是我不“C++”一词。 这是我的第一个大型java项目,我想实现一个交易卡游戏组件。 我的问题是:我计划使用100多张不同的卡,有不同的动作。将有4种主要类型。在这些类型中,卡的操作是相似的,但仍然不同。 我想多上一节课,比如

public class CardActionDatabase {
    public void card1Action(){}
    public void card2Action(){}
    ....
}
但问题是,我不能在实际代码中调用它们,比如

(playedcard.getName())Action()
因为这在编译语言中是不可能的。 因此,基本上我必须“如果”最近的牌与所有现有的牌,这将是低效的


我怎样才能做到这一点呢?

我自己也在玩牌,这里有一些选择。一个简单的方法(虽然可能不是最有效的)是:

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

然后,为游戏中每一张独特的卡创建
卡的子类。这些子类以自己的方式定义
onPlay()
。然后在玩家回合逻辑中,当玩家选择一张牌时,该牌的
onPlay
方法被调用。您甚至可以添加诸如
onDiscard
ondestory
onTurnStart
之类的内容

你也可以考虑在“卡”和“字段/播放区”之间创建控制器类。例如,您可能有一个

HandController
类,该类具有公共方法
DiscardRandom()
Discard(int index)
Draw()
,卡牌可以使用这些方法来操作游戏


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

我自己也在玩纸牌游戏,这里有一些选项。一个简单的方法(虽然可能不是最有效的)是:

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

然后,为游戏中每一张独特的卡创建
卡的子类。这些子类以自己的方式定义
onPlay()
。然后在玩家回合逻辑中,当玩家选择一张牌时,该牌的
onPlay
方法被调用。您甚至可以添加诸如
onDiscard
ondestory
onTurnStart
之类的内容

你也可以考虑在“卡”和“字段/播放区”之间创建控制器类。例如,您可能有一个

HandController
类,该类具有公共方法
DiscardRandom()
Discard(int index)
Draw()
,卡牌可以使用这些方法来操作游戏

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