我正在制作一个具有抽象 Fighter 类的文本游戏。在 Fighter 中,我有一个名为 protected boolean isGround 的变量。然后我有 2 个扩展 Fighter 的抽象类,称为 AirFighter 和 GroundFighter,它们基本上将 isGround 设置为 True 或 False,具体取决于它们是否是地面单位。
然后我想设置游戏,以便在我的战斗阶段游戏检查玩家 1 的速度是否比玩家 2 快,并根据谁更快然后像 p1.attack(p2) 那样做,并打印出那场战斗,比如每个玩家的剩余生命值或类似的东西。
我想要一些空中战斗机攻击空中,或者攻击空中和地面的方式,我希望一些地面战斗机只攻击地面,或者地面和空中。我将如何在保持松散耦合的同时做到这一点?这是一个设计模式的课程,它让我感到沮丧。有没有设计模式可以帮助我解决这个问题?
想想星际争霸,这基本上就是我的游戏所模仿的,像海军陆战队这样的某些单位可以攻击地面和空中,有些空中单位只能攻击空中,有些可以两者兼而有之。我希望能够做到这一点而不会有一些讨厌的 if else 检查语句。