![]() |
1
1
如果您真的想在这里使用模式,我会考虑使用命令模式。 例如,您只需编出一系列命令“战斗动作”来执行一段时间。你也可以很容易地根据对手所做的事情取消命令。随着游戏的发展,你可以很容易地增加动作/策略。 但这并不是整个游戏的模式,而是一个解决方案。 |
![]() |
2
2
试图为相当详细的情况找到一个“正确”的设计模式是徒劳的搜索。设计模式解决了特定编程语言中出现的某些常见低级情况——对于您可能发现的每个可能的情况,都不一定存在特定的情况,也不一定只使用一个模式来解决您的问题。 尤其是这种情况并不是真正的设计模式——设计模式主要关注类和对象之间的静态关系,而您在这里所说的本质上是算法。设计模式提供了实现算法的方法,但它们本身并不是真正的算法。 这应该很简单。您有一个while循环在指定的持续时间内运行。每次迭代代表经过的时间的一秒钟,在该迭代中,它将对参与战斗的每个相关对象调用一个或多个方法-战斗人员、天气等(有多少种方法,哪些方法是 游戏设计 问题而不是编程问题。如果你愿意,这些对象可以来自一个包含整个上下文的战斗对象。 这里并不真正需要观察者模式,事实上,它将把问题从一个易于理解的迭代过程更改为一个事件驱动的过程,从而严重地使问题复杂化。如果需要访问各种属性,则战斗人员可以直接查询其他战斗人员。 |
![]() |
3
0
好吧,所有东西都可以通过对象建模:) 假设你不需要“真实”秒-你可以计算整个战斗,将每一步保存在日志中,将日志保存在数据库的某个位置,然后每秒向玩家显示一行日志。您的日志不仅可以是字符串,还可以包含“此时”的序列化战斗数据,因此您甚至可以进行“交互式”战斗(玩家可以在战斗中更改其战斗策略,您可以重新计算战斗,将反序列化战斗状态作为新的起点)。 下一个。让我们每个战士都成为目标:
战略也是目标:
接下来,您需要在运行循环时创建和初始化适当的对象。
|