问题描述
我真的无法解决这个问题。我正在制作基于文本的冒险游戏,我想在游戏中实现这些类型的差异(水>火,火>草),以实现更专业的攻击和机制。但是我到底该怎么编码呢?
解决方法
如果您希望能够对诸如(water > fire
)这样的对象使用不等式,则可以在类上实现魔术方法,例如__lt__
。在此处查看文档(https://docs.python.org/3/reference/datamodel.html#object.__lt__
)
但是,这可能不是最好的方法。例如,您可以做的是编写一个实现此“强于”关系的布尔函数。此功能可以由一个简单的字典(从类型到类型集)来支持,例如:
type_data = {'water': {fire},'fire': {grass}}
def is_stronger(x,y):
return y.type in type_data[x.type]