Python:获取上一个列表条目(相对于分配给当前列表位置的变量)

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

我正在用Python编写一个非常简单的基于文本的游戏,其中包含玩家可以在其中移动的5个房间。

玩家从中央房间gameMap [2]开始。

下面是提供播放器位置的代码。

gameMap = ['room0','room1','room2','room3','room4']

playerLocation = gameMap[2]

现在,假设玩家想向左移动。这意味着我必须将playerLocation分配给gameMap[1]

playerLocation = gameMap[1]

只有5个房间,可以很容易地做到这一点。但是出于缩放目的,我希望能够将playerLocation分配给“当前列表条目-1”,前提是这在范围内。

此指令将进行如下分配:

如果玩家位置是gameMap [4],则玩家位置= gameMap [3]如果playerLocation是gameMap [1],则playerLocation = gameMap [0]

我已经考虑过使用next(gameMap),但这似乎存在2个问题:1)它不允许我引用玩家的当前位置,因为它必须从gameMap [0]开始2)由于Python的体系结构,它似乎并没有相反的效果,there doesn't seem to be a previous() function。 (对不起,如果我在这里用错了术语:)。

我到处都看过,但似乎找不到任何方法。可能吗?

python list iterable
2个回答
0
投票

在这种情况下,您可以做的是使用一个变量作为播放器所处的位置;例如:

current = 0

然后进行您必须执行的任何计算并致电playerLocation = gameMap[current]

如果您想返回一个级别,您可以执行以下操作:

current -= 1

playerLocation = gameMap[current]

我不确定是否遗漏了您的问题的一部分,因为这似乎相对简单;如果我误会了,请纠正我。


0
投票

您是否尝试过简单地确定球员位置的某种指标?然后,如果玩家在第一个房间中,则索引为0,例如,您可以执行以下操作:

index = index + 1 if index + 1 < len(gameMap) else index

前进时]

index = index - 1 if index > 0 else index

回退时。

© www.soinside.com 2019 - 2024. All rights reserved.