2016-06-08 68 views
-3

我想编码类似于交易卡游戏的结构,例如Yugioh或万智牌。策略卡片游戏的编码设计?

我有我的游戏设置的基本基础设施,但我无法弄清楚的一件事是'效果'或'事件'。一张牌可能会说“抽3张牌”。另一个人可能会说,“当这个仆从死亡时,摧毁场上所有的牌”。另一个人可以说:“在这张卡被抽出后第四回合治疗50个生命”。

从编码的角度来看,你会怎么做?我知道我需要类似事件(玩家抽牌时的事件,检查是否有任何效果正在侦听该事件)以及堆栈数据结构,因为效果有时可能会重叠。

什么是从这里开始的好地方?我应该为每一张卡都有一个Java类文件,因为它们的效果差别很大吗?我应该在游戏中拥有所有1000张牌的方法,每种方法都会影响游戏吗?我不知道。

感谢您的帮助。

+0

我建议你所有的卡片都从父对象继承,并且有事件的getter和setter方法...另外,不应该为每张卡片都有一个java类文件,那可能是糟糕的设计至少。 – Theyna

+0

是的,我现在有一个卡类,扩展卡的生物,扩展卡的法术等等。但是,'事件'背后真正的细节对我而言是复杂的。假设有一张牌有文字“每当这张牌被打,你的对手丢弃一张牌”。那行代码在哪里?当一张特定的牌可能会产生一个效果,即其他牌没有类似于 – Hatefiend

+0

的定制事件时,很难进行OOP ......请参考下面的Morgans答案并开始做一些研究 – Theyna

回答

1

我从来没有在卡片游戏编码之前 - 可能是一个有趣的项目,但我猜测每卡一个自定义子类应该是足够的。卡片作为对象本身可以监听事件,卡片作为类定义行为。

我不认为你会需要任何非常奇特的基础设施,因为只要发生任何事情就可以迭代甲板上的每张卡。在一次回合制游戏中,可能有十几个实体同时参与,但我怀疑游戏逻辑需要多少优化。

我不会担心过早地处理代码混乱的问题 - 先搞一打卡片类型,然后看看你是否能找到任何重构机会。祝你好运!