我试图创建一个游戏,用户可以首先在 3 个不同的地图之间进行选择,然后输入“左”和“抓取”之类的词以在所选地图中移动(例如基于文本的游戏)。大多数程序使用列表方法和 if 语句。我卡住的部分是地图选择,它使用嵌套列表。
这是我试过的:
choose = input("What floor plan would you like?: 1, 2, or 3?: ")
if choose == 2:
2 == plan2
plan = plan.replace(plan, plan2)
elif choose == 3:
plan = plan.replace(plan,plan3)
这是我的嵌套列表的一个例子:
plan = [
['nothing', 'a wooden stake', 'a wooden stake','a vampire','stairs leading up'],
['stairs leading down', 'a vampire','a wooden stake', 'a vampire','stairs leading up'],
['stairs leading down', 'a silver sword','chocolate','a werewolf','The Wand']
]
我尝试了各种方法,但似乎没有任何效果。是如何进一步使用“计划”来阻止它正常工作的?我将其用作“plan[floor][room]”,它会跟踪玩家所在的位置。 我不想尝试使用任何太复杂的东西,因为我还在学习,但如果 replace() 列表方法在这里不起作用,请告诉我。如果这个问题太模糊或需要改写或删除,请告诉我。谢谢!
每个都包含一个平面图。选择你想要的那个。
不要尝试做任何
replace
ing。那会给你造成一团糟。
plan1 = [
['nothing', 'a wooden stake', 'a wooden stake','a vampire','stairs leading up'],
['stairs leading down', 'a vampire','a wooden stake', 'a vampire','stairs leading up'],
['stairs leading down', 'a silver sword','chocolate','a werewolf','The Wand']
]
plan2 = [
[..., ..., ...],
[..., ..., ...],
[..., ..., ...],
]
plan3 = [
[..., ..., ...],
[..., ..., ...],
[..., ..., ...],
]
choose = input("What floor plan would you like?: 1, 2, or 3?: ")
if choose == 1:
plan = plan1
elif choose == 2:
plan = plan2
elif choose == 3:
plan = plan3
您可以简单地格式化并使用返回的数字作为索引
plan
plan = (
['nothing', 'a wooden stake', 'a wooden stake','a vampire','stairs leading up'],
['stairs leading down', 'a vampire','a wooden stake', 'a vampire','stairs leading up'],
['stairs leading down', 'a silver sword','chocolate','a werewolf','The Wand']
)
MSG1 = "What floor plan would you like?: 1, 2, or 3?: "
#keep asking the question until a valid answer is given
#format the answer to a plan index
while not (i:=int(input(MSG1))-1) in range(len(plan)):
pass
this_plan = plan[i]