0

我正在为 yu-gi-oh 决斗构建一个简单的 C++ 平台,但我发现卡牌效果存在问题。由于几乎每张卡片都有不同的效果,这意味着我必须为每张卡片编写不同的函数。你有什么办法可以让这更容易,还是我必须为游戏的每张卡片编写一个函数?y

4

2 回答 2

1

无论如何,您必须以一种或另一种方式实现每一个效果。将它们放入不同的函数,甚至不同的类中,可以帮助您组织代码。将函数头想象成对自我的内联提醒:“这里开始执行这个特定的块”。

换句话说,不要节省功能。以后你会感谢自己的。

从理论上讲,将所有效应放入一个巨大的函数中是可能的,但在任何有意义的意义上它都不会“更容易”,尤其是从长远来看。

并阅读一些关于一般编程的书。StackOverflow 不是一所学校。Steve McConnell(ISBN 1556154844)的“代码完成”很好。

于 2012-07-30T20:58:56.940 回答
0

听起来像是设计模式的工作。我对 yu-gi-oh 不太熟悉,但我相信你可以实现你想要的。这些方法将要求您使用一些好的 ol' 面向对象编程。以下是一些可能对您有所帮助的起始模式:

策略模式(查找常见的“卡牌效果”类型,如伤害或陷阱等并扩展功能):http: //sourcemaking.com/design_patterns/strategy/cpp/1

装饰器模式(如果一个效果会做很多不同的事情,其中​​一些效果类似于其他“卡片效果”,你可以使用装饰器模式将另一张卡片的伤害效果与睡眠效果相结合卡等):http: //sourcemaking.com/design_patterns/decorator

无论哪种方式,都很难从任何在线资源中学习这些模式中的任何一种。如果这听起来像你感兴趣的东西,我会建议你出去买一本好的设计模式书。不幸的是,我对 c++ 的设计模式书没有任何好的建议。

于 2012-07-30T21:13:26.083 回答