出于 OOP 學習的原因,(目前)創建了一個包含區域的字典類和一個您可以在訪問受限的區域之間移動的類,例如,從區域 3 開始,您只能前往區域 2、4、6、8 或僅從區域 10 到區域 9。當我想為區域添加描述時出現問題。對于少數地區,它讀取錯誤的行并且找不到原因。
(...)
class Territory(object):
def __init__(self, **regions):
player = Player()
self.player = player
regions_file = open("regiony.txt", "r")
regions_description = regions_file.readlines()
regions = {
1: {1: 2, "desc": regions_description[2]},
2: {1: 3, "desc": regions_description[3],
4: 1, "desc": regions_description[1]}, # prints regions_description[3] instead
3: {1: 8, "desc": regions_description[8], # prints regions_description[4] instead
2: 6, "desc": regions_description[6], # prints regions_description[6] instead
3: 4, "desc": regions_description[4], # prints regions_description[8] instead
4: 2, "desc": regions_description[2]},
4: {2: 3, "desc": regions_description[3],
4: 5, "desc": regions_description[5]},
5: {1: 4, "desc": regions_description[4]}, # prints regions_description[6] instead
6: {1: 7, "desc": regions_description[7],
3: 3, "desc": regions_description[3]},
7: {3: 8, "desc": regions_description[8], # prints regions_description[4] instead
4: 6, "desc": regions_description[6]},
8: {1: 9, "desc": regions_description[9],
2: 7, "desc": regions_description[7],
4: 3, "desc": regions_description[3]},
9: {1: 10, "desc": regions_description[10],
4: 8, "desc": regions_description[8]}, # prints regions_description[4] instead
10: {4: 9, "desc": regions_description[9]}}
self.__dict__.update(regions)
regions_file.close()
class Moving(object):
def __init__(self):
self.territory = Territory()
self.regions = self.territory.__dict__
def movement(self):
region = 1
path = 1
POSSIBLE_PATHS = (1, 2, 3, 4, 0)
print(region)
print(self.regions[region]["desc"])
while path:
try:
path = int(input("Which path you take? "))
if path in POSSIBLE_PATHS:
region = self.regions[region][path]
print(region)
print(self.regions[region]["desc"])
elif path == 0:
break
except:
while path not in POSSIBLE_PATHS:
path = int(input("Which path you take? "))
(...)
regiony.txt現在只是:
test1
test2
(...)
test9
test10
試圖移動regions_file和regions_description使用def movement,print(regions_description[region])但效果是一樣的。
uj5u.com熱心網友回復:
幾個小時前無法解決它,但這個想法是在我想在慢跑時重繪 我的想法時出現的:) 似乎是一個菜鳥錯誤
萬一其他人將來遇到這個問題,添加"desc": regions_description[x]到每一行是一個錯誤,它應該只在主鍵的行中。
1: {1: 2, "desc": regions_description[1]},
2: {1: 3, "desc": regions_description[2],
4: 1},
3: {1: 8, "desc": regions_description[3],
2: 6,
3: 4,
4: 2},
4: {2: 3, "desc": regions_description[4],
4: 5},
5: {1: 4, "desc": regions_description[5]},
6: {1: 7, "desc": regions_description[6],
3: 3},
7: {3: 8, "desc": regions_description[7],
4: 6},
8: {1: 9, "desc": regions_description[8],
2: 7,
4: 3},
9: {1: 10, "desc": regions_description[9],
4: 8},
10: {4: 9, "desc": regions_description[10]}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473223.html
上一篇:請幫助更改嵌套在字典中的鍵
