我需要一本字典,我可以编辑。不添加一个全新的值,但添加到'类'???在字典里面。例如角色统计。
if race == 'orc':
if Class == 'worrier':
stats = ['strength': 6, 'intelligence': 2]'
我怎样才能增加力量? (我知道你不能添加字典,这就是为什么我需要类似的东西)。
答案 0 :(得分:4)
我知道你不能添加字典
实际上,你可以:
>>> characters = {}
>>> characters['warrior'] = {}
>>> characters['warrior']['orc'] = {}
>>> characters['warrior']['orc']['strength'] = 5
>>> characters['warrior']['orc']['intelligence'] = 2
>>> characters
{'warrior': {'orc': {'intelligence': 2, 'strength': 5}}}
>>> characters['warrior']['orc']['strength'] += 3
>>> characters
{'warrior': {'orc': {'intelligence': 2, 'strength': 8}}}
但是,你可以说这不是很理想。您更合适的是存储所有属性的对象,提供添加各种属性的方法。然后存储这些对象的集合。
class Character(object):
def __init__(name, type, category, strength, intelligence):
self.strength = strength
self.intelligence = intelligence
self.name = name
self.type = type
self.category = category
def make_smart_or_dumb(self, intelligence):
self.intelligence += intelligence
def make_strong_or_weak(self, strength):
self.strength += strength
def is_dead(self):
return self.strength < 0
gunar_the_orc = Character('Gunar','Orc', 'Warrior', 10, 5)
smith_the_human = Character('Smith','Human','Warrior', 5, 10)
game_characters = [gunar_the_orc, smith_the_human]
现在,你想给兽人一些力量:
gunar_the_orc.make_strong_or_weak(3)
让他变弱:
gunar_the_orc.make_strong_or_weak(-2)
这样,当你进行“战斗”时,你可以接受每种武器的影响,然后减去造成的伤害,直到当然兽人因为力量小于0而死亡 - 这就是为什么我加上{{ 1}}方法。
以下是“游戏”的样子:
is_dead()
答案 1 :(得分:1)
目前还不清楚你在这里问什么,所以我假设你想知道如何在字典中添加一个值。
试试这个:
>>> dictionary = {"strength": 6, "intelligence": 2};
>>> dictionary["strength"] += 7;
>>> print(dictionary);
{'strength': 13, 'intelligence': 2} print(dictionary)
但是,在这种情况下,我建议您查看classes。这将允许您改为myorc.strength += 7
,并进一步创建彼此继承的单元类,例如。食人魔就像一个兽人,但强度更高,不需要重写大量代码。
编辑:通过阅读您的评论,您可能希望在字典中添加新的键值对。为此,请执行dictionary[key] = value
。如果key
不是字典的键,它将创建该对,如果是,则更新该值。
答案 2 :(得分:0)
char = {"race" : "orc", "class" : "worrier", "stats" : {"strenght" : 6, "intelligence" : 2}}
char["stats"]["strenght"] += 1
# output -> {'race': 'orc', 'stats': {'intelligence': 2, 'strenght': 7}, 'class': 'worrier'}
# Append something to stats
char["stats"].update({"stamina" : 5})
# output -> {'race': 'orc', 'stats': {'stamina': 5, 'intelligence': 2, 'strenght': 7}, 'class': 'worrier'}
答案 3 :(得分:-1)
为什么不stats['strength'] = stats['strength'] + n
?