所以我正在开发一个基于文本的游戏,我希望用户在其中输入他们的下一个动作。我正在尝试找出一种对其进行编码的方法,以便它可能不那么“挑剔”。我希望游戏接受部分输入(例如 n 而不是北),我也希望它忽略诸如“go”之类的前缀。
我已经用 for 循环计算出部分输入,它也接受带有“go”前缀的输入。但是,如果我只是键入“go”而不输入方向,则默认为“north”,这是我的有效命令列表的第一部分。给出空输入时也会出现此问题。
我现在正在寻找的是一种让前缀变化的方法,例如在地图前使用“检查”或在南前使用“步行”。当输入仅包含前缀而不是实际命令时,我还需要让它识别。
这是目前的相关代码。
move_input = input("You silently ask yourself what to do next.\n").lower()
for n in valid_moves:
if n.startswith(move_input) or ("go " + n).startswith(move_input):
move_input = n