如果输入的输入被视为“无效”,则尝试继续要求输入

这是我为 CS 课程制作的文本冒险游戏的一小部分。您正在探索一所房子,并通过告诉游戏您要向北、向南、向东或向西移动来导航它。

所以我想添加一些东西来告诉你当你输入了一个无效的输入时,如果你说拼错了像 Nroth、Suoth、Eas 或 West 这样的词之一。这些只是示例,但希望您知道我的意思,如果它不完全匹配北、南、东或西。我将如何在这部分代码中做到这一点?


我举了一个我想输出的错误的例子,如果你拼写错误,上面写着“elif room ==”porch”,但它应该继续询问你想去哪个方向,即使你得到那个错误,因为截至现在它会继续询问您想去哪个方向,无论您输入什么,它都不会输出根据您进入的房间应该说的文本。


def pickRoom(direction, room):

    if(direction == "quit") or (direction == "exit"):

        print("Better luck next time!")

        return "Exit"

    elif room == "Porch":

        if direction == "North":

            return "Pantry"

        else:

            print("That is not a valid entry!")

    elif room == "Pantry":

        if direction == "North":

            return "Kitchen"

        elif direction == "East":

            return "DiningRoom"

    elif room == "DiningRoom":

        if direction == "West":

            return "Pantry"

    elif room == "Kitchen":

        if direction == "West":

            return "LivingRoom"

        elif direction == "East":

            return "Bedroom"

    elif room ==  "Bedroom":

        if direction == "West":

            return "Kitchen"

    elif room == "LivingRoom":

        if direction == "West":

            return "Bathroom"

        elif direction == "North":

            return "Stairs"

    elif room == "Bathroom":

        if direction == "East":

            return "LivingRoom"

    elif room == "Stairs":

        if direction == "South":

            return "Bar"

    elif room == "Bar":

        if direction == "East":

            return "Shop"

    elif room == "Shop":

        if direction == "North":

            return "Closet"

        elif direction == "South":

            return "Storage"

    elif room == "Storage":

        if direction == "North":

            return "Shop"

    elif room == "Closet":

        if direction == "South":

            return "Shop"

如果您需要更大的代码部分甚至整个 .py 文件来弄清楚,请告诉我,谢谢。


蓝山帝景
浏览 131回答 3
3回答

哔哔one

为了保持在显示的代码部分,根据要求,只需在最后添加else:    print("Sorry, that does not make sense to me.")    return room通过这种方式,您可以解决当前问题,即在没有任何编程选项与输入匹配的情况下,不可预测的值将重新调整为新的当前房间。通过room在这种情况下返回参数,存储当前房间的变量将继续使用有效房间(当前房间)。当返回一个不可预测的值时,它很可能不是正确的房间名称之一,它需要这样才能保持逻辑结构正常运行。一旦 room 变量包含垃圾,它就再也无法匹配任何选项,因此不再输出任何有意义的内容。作为防止房间最终出现垃圾的额外预防措施(由任意数量的可能事故之一造成),您可以检查房间是否是现有房间之一,否则将其重置为默认值 - 或退出并显示错误消息“哎呀,意外传送到未知空间,下次地球见。”

桃花长相依

elif room.lower() in ('perch','peach','pooch'):你可以只列出一个你想指出的所有拼写错误的大列表。如果他们做出的选择不正确,请检查他们输入的值是否在此列表中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python