如何让用户在我的程序中的嵌套列表之间进行选择?

问题描述 投票:0回答:2

我试图创建一个游戏,用户可以首先在 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() 列表方法在这里不起作用,请告诉我。如果这个问题太模糊或需要改写或删除,请告诉我。谢谢!

python input replace nested-lists
2个回答
0
投票

创建三个separate变量

每个都包含一个平面图。选择你想要的那个。

不要尝试做任何

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

0
投票

您可以简单地格式化并使用返回的数字作为索引

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]
© www.soinside.com 2019 - 2024. All rights reserved.