当前位置: 首页 > 知识库问答 >
问题:

如果输入的输入被认为是“无效的”,尝试继续询问输入

宣滨海
2023-03-14

这是我为CS类制作的文本冒险游戏的一小部分。你正在探索一座房子,你通过告诉游戏你想去北、南、东还是西来导航它
因此,我想添加一些内容,以便在输入无效输入时告诉您,如果您说拼写错误的单词,如Nroth、Suoth、Eas或Weast。这些只是例子,但希望你们知道我的意思,只要它不完全匹配北,南,东或西。在这段代码中,我将如何做到这一点?

我举了一个错误的例子,如果你在写“elif room==”的地方犯了拼写错误,我想输出这个错误“但它应该继续询问你想去哪个方向,即使你出现了错误,因为到目前为止,它继续询问你想去哪个方向,不管你输入什么,它都不会输出根据你进入哪个房间而应该说的文字。

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文件来解决这个问题,谢谢。

共有3个答案

湛鸿雪
2023-03-14

您可以尝试根据正确选择列表进行测试。我希望这有帮助!

if room in roomList:
    # availableDirection is a dictionary that 
    # has rooms as keys and valid directions as values.
    if direction in availableDirection[room]:
        # return the next room from a dictionary representing the 
        # current room where the key is direction and value is the next room.
    else:
        return "Invalid direction"
else:
    return "Invalid room"
冯浩旷
2023-03-14

我不知道你需要什么,但这可能会有所帮助:

directions = ["south", "west", "east", "north"]
while True:
    move = input("Choose which way you would like to go\n")
    if move.lower() in directions:
        print("You have chosen to go " + move)
    else:
        print("Invalid move!")

对于只是有一个想法,这是一个输出:

>>Choose which way you would like to go
north
>>You have chosen to go north
>>Choose which way you would like to go
North
>>You have chosen to go North
>>Choose which way you would like to go
nothr
>>Invalid move!
>>Choose which way you would like to go
乌鸿宝
2023-03-14
elif room.lower() in ('perch','peach','pooch'):

你只需要列出一张你想指出的所有拼写错误的大单子。如果他们所做的选择不正确,请检查他们输入的值是否在此列表中。

 类似资料:
  • 我正在尝试创建一个程序,向用户询问指数,然后获取指数并执行操作(e^exponent)。如果用户输入的值不是双精度值,程序会打印“无效输入”,并继续请求指数。但是,我无法让这段代码工作,当我在调试器中键入非双精度值时,它会无限打印“输入指数:无效输入”。

  • 我正在做一个简单的主菜单项目。我必须检查用户输入的有效性:1)他是否输入了1和7之间的选项(是吗)2)他是否输入了整数。 对于第二,我想使用try-and-catch,但没有成功。用户输入非整数后,它将打印异常(在catch块中),并返回main。我想一直要求用户输入,直到他输入1-7

  • 我正在做一个问题,其中我为拼字游戏创建了各种功能。首先,我想让用户输入或或开始新游戏/重放最后一手牌/结束游戏。 一旦游戏开始,我想让用户输入或来让用户或计算机玩。 我陷入了问题的最后一部分。 我的代码: 如果内部循环的选择不是u或c,它应该反复通知并询问,直到u或c是输入。但它是在初审后从那个循环中出来的。 理想输出: 我的输出: 问题是,当用户在第二级输入无效命令时,我的代码开始询问第一级的问

  • 好的,所以我的程序工作正常,但最后它会询问用户是否要输入另一组整数,如果他们键入“是”,则该过程重新开始。我的程序正在重新开始,但它保留所有相同的用户输入,因此它只是不断重复其原始输入的相同输出。 这是我的代码 我当前的输出如下所示: 输入整数列表(以0结尾):1 输入整数列表(以0结尾):2 输入整数列表(以 0 结尾):-1 输入整数列表(以0结尾):3 输入整数列表(以0结尾):0 阳性数量

  • 当谈到编码时,我是一个完全的初学者。我现在在当地的社区大学上编程课。我们被指派创建一个程序来计算用户的BMI(身体质量指数)。 我已经设法创建了程序的基本结构,用户输入体重和身高,并将其计算到BMI中。然而,有一个标准我正在努力创建。 null 请以英寸为单位输入身高:62 请以磅为单位输入体重:X 对不起,您没有输入磅数 我有一个想法,因为人们建议使用try,catch语句。我试过了,但我似乎能

  • 我正在写一个叫做hangman.py的程序。在我的程序中,用户不能在我的输入中输入“?”或空白。例如,用户不能输入“?xx?xx?”或“我该怎么做”。但用户可以输入诸如“ldkdjgg”或“stop-go”之类的内容。如果用户输入诸如“?xxxxx”或“我该怎么做”之类的内容,我必须不断询问用户请输入一个不包含的要猜测的单词?或空白:“.我的问题是如何打印”请输入一个不包含字符的要猜测的单词?或空