我正在用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。 (对不起,如果我在这里用错了术语:)。
我到处都看过,但似乎找不到任何方法。可能吗?
在这种情况下,您可以做的是使用一个变量作为播放器所处的位置;例如:
current = 0
然后进行您必须执行的任何计算并致电playerLocation = gameMap[current]
如果您想返回一个级别,您可以执行以下操作:
current -= 1
playerLocation = gameMap[current]
我不确定是否遗漏了您的问题的一部分,因为这似乎相对简单;如果我误会了,请纠正我。
您是否尝试过简单地确定球员位置的某种指标?然后,如果玩家在第一个房间中,则索引为0,例如,您可以执行以下操作:
index = index + 1 if index + 1 < len(gameMap) else index
前进时]
index = index - 1 if index > 0 else index
回退时。