gpt4 book ai didi

python - 接收KeyError : ' ' for my text based rpg

转载 作者:行者123 更新时间:2023-12-01 07:24:10 26 4
gpt4 key购买 nike

我正在开发一个基于文本的 RPG 以及一本名为“Make Your Python Text Adventure”的书,但我遇到了一些问题。目前,游戏的 map 存储在字典中。但是,当我尝试运行该程序时,我在 world.py 文件中收到 KeyError: ' '

我尝试确定 KeyError 可能来自何处,因为我知道这通常与字典 IIRC 中的条目相关。我无法找到此错误的来源,并且通过查看错误引用的代码行,我看不到 KeyError 可能来自何处。

    for y, dsl_row in enumerate(dsl_lines):
row = []
dsl_cells = dsl_row.split("|")
dsl_cells = [c for c in dsl_cells if c]
for x, dsl_cell in enumerate(dsl_cells):
tile_type = tile_type_dict[dsl_cell]
row.append(tile_type(x,y) if tile_type else None)

具体来说,错误是在tile_type =tile_type_dict[dsl_cell]行抛出的。

这是主游戏文件的一部分,也引发错误:

def play():
print("Escape from Cave Terror!")
world.parse_world_dsl()
player = Player()
while True:
room = world.tile_at(player.x, player.y)
print(room.intro_text())
room.modify_player(player)
choose_action(room,player)

此错误导致游戏在启动时崩溃。它将加载文本的介绍行,但当游戏读取 map 上的起始图 block 时,它会遇到 KeyError。如果您需要更多源代码来复制/提供建议,请告诉我。该游戏针对游戏的每个方面分为 5 个不同的文件,并且主游戏循环并不位于包含我提供的代码的文件中。我应该在这个街区清理一些东西,还是在其他地方?

世界地图文件错误如下:

world.py", line 115, in parse_world_dsl
tile_type = tile_type_dict[dsl_cell]
KeyError: ' '

然后在主游戏文件中:

game.py", line 8, in play
world.parse_world_dsl()

不一定是错误,但它引用了 world.py 文件,因此我认为它可能值得包含在内。

提前感谢大家提供的任何帮助!

最佳答案

你可以尝试:

dsl_cells = [c for c in dsl_cells if c.strip()]

关于python - 接收KeyError : ' ' for my text based rpg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57538569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com