基于Python文本的游戏装备装甲统计信息
我正在开发一个基于Python文本的rpg,遇到了一个无法解决的问题。我试图得到一个不断更新的系统,告诉玩家他/她的数据应该取决于装备的盔甲或武器。 下面是我的代码中的类示例:基于Python文本的游戏装备装甲统计信息,python,statistics,Python,Statistics,我正在开发一个基于Python文本的rpg,遇到了一个无法解决的问题。我试图得到一个不断更新的系统,告诉玩家他/她的数据应该取决于装备的盔甲或武器。 下面是我的代码中的类示例: import sys import random class Player: def __init__(self, name): self.name = name self.health = 100 self.maxhealth = 100 sel
import sys
import random
class Player:
def __init__(self, name):
self.name = name
self.health = 100
self.maxhealth = 100
self.weap = "Rusty Sword"
self.armH = "None"
self.armB = "Wor Shirt"
self.armA = "None"
self.armL = "Worn Pants"
self.armF = "Worn Boots"
self.gold = 100
self.stre = 1
self.magi = 0
self.rang = 0
self.defe = 0
self.level = 1
self.exp = 0
self.maxexp = 100
self.pots = 0
self.arrows = 0
self.inventory = ["Rusty Sword",
"Worn Shirt",
"Worn Pants",
"Worn Boots"]
self.spells = []
## Armor and Weapon Stats #####
## WEAPON BUFFS ##
if self.weap == "Rusty Sword":
self.stre += 10
if self.weap != "Rusy Sword":
self.stre -= 10
底部代码显示您是否装备了特定物品
它会改变你的数据,但我现在的问题是什么时候
你没有装备护甲或武器,它不会减少甚至改变你的属性
就像它应该的那样。基本上,我只是想找到一种方法来创建一个更新系统,根据装备的物品相应地更新玩家的统计数据。听起来每个角色都有一个基本属性分数,但有效分数是由各种装备修改的基础。这是一个很好的属性用例
class Player:
def __init__(self, name):
# ...
self.base_stre = 1
# ...
@property
def stre(self):
stre = self.base_stre
if self.weap == "Rusty Sword":
stre += 10
# etc
return str
为什么不在需要时计算例如
stre
一个@属性
,而不是对其进行加减?在我添加@property并将stre更改为Player中的一个方法后,我如何调用它用于类似可视统计的东西,以便玩家知道他们有多少攻击或防御?基本上,我是在问如何打印stre?属性的访问方式与普通属性一样(print p.stre
);唯一的区别是,它不再是一个简单的查找(p.uu dict_uu['stre']
),而是一个方法调用的返回值。