【发布时间】:2021-07-07 21:43:04
【问题描述】:
所以我正在制作一个基于文本的小角色扮演游戏作为个人项目。我有一本字典,它使用嵌套字典映射游戏位置 - 例如:
zonemap = {
"a1": {ZONENAME: "somename", DESCRIPTION: "somedescription", SOLVED: False, SEARCHED: False},
"a2": {ZONENAME: "somename", DESCRIPTION: "somedescription", SOLVED: False, SEARCHED: False},
"c3": {ZONENAME: "somename", DESCRIPTION: "somedescription", SOLVED: False, SEARCHED: False}
#so on for all game locations
}
SOLVED 键存储一个布尔值,告诉我们该区域是否已完成。当调用下面的函数并更新SEARCHED 键时,它也在更新SOLVED 键。打印语句为两个键返回True,但它应该只更新SEARCHED
def search_zone():
if zonemap[myPlayer.location][SEARCHED] == False:
zonemap[myPlayer.location][SEARCHED] = True #this line is the trouble maker
for key in zonemap.keys():
print('SOLVED', zonemap[key][SOLVED])
print('SEARCHED', zonemap[key][SEARCHED])
zonemap[myPlayer.location][SEARCHED] = True 为什么要更新两个密钥?
【问题讨论】:
标签: python dictionary if-statement boolean