我正在为基于网络的游戏构建机器人以学习OOP。 目前,我想知道如何最好地实现这样的想法:可以有一支拥有圣骑士而没有一支圣骑士的军队。如果军队没有圣骑士,我知道这支军队是“特种部队”,也就是说,它不在村庄内。
class Village:
def __init__(self, name, coord):
self.name = name
self. coord = coord
class Army:
def __init__(self, item):
self.composition = {'spear': 0, 'sword': 0, 'axe': 0, 'paladin': 0}
if len(item) == 3:
item.append('0')
for index, elem in enumerate(self.composition):
self.composition[elem] = item[index]
def merge_army(self, other):
"Merge all the troops from other with self"
for item in other.composition:
self.composition[item] += other.composition[item]
other.composition[item] = 0
village = Village('Moscow', [364, 644])
army_example = '250 300 1 1'.split(' ')
army_example2 = '250 300 1'.split(' ')
village.army = []
village.army.append(Army(army_example))
village.army.append(Army(army_example2))
village.army目前代码的工作方式为:
[<__main__.Army object at 0x00000229C9E99040>, <__main__.Army object at 0x00000229C9E90520>]
很显然,只要求village.army [0],就得到了第一个生成的实例。问题是,每当有军队回到村庄时,它就会与驻军合并。 我应该建立一个Stationed_Army(Army)类吗?同样,一个类Away_Army(Army)?