Python 如何使用函数重构代码?

Python 如何使用函数重构代码?,python,Python,这是我为学校做的一个简单的迷宫游戏。我尝试过不同的解决方案,但仍然不知道如何解决。我不一定需要一个完整的解决方案;任何提示都会有帮助 x = 1 y = 1 valid_selection = True while True: if x == 1 and y == 1: if valid_selection == True: print("You can travel: (N)orth.") valid_selection = T

这是我为学校做的一个简单的迷宫游戏。我尝试过不同的解决方案,但仍然不知道如何解决。我不一定需要一个完整的解决方案;任何提示都会有帮助

x = 1
y = 1
valid_selection = True

while True:
    if x == 1 and y == 1:
        if valid_selection == True:
            print("You can travel: (N)orth.")
        valid_selection = True
        choice = input("Direction: ")
        if choice.lower() == "n":
            y += 1
        else:
            print("Not a valid direction!")
            valid_selection = False
    elif x == 1 and y == 2:
        if valid_selection == True:
            print("You can travel: (N)orth or (E)ast or (S)outh.")
        valid_selection = True
        choice = input("Direction: ")
        if choice.lower() == "n":
            y += 1
        elif choice.lower() == "e":
            x += 1
        elif choice.lower() == "s":
            y -= 1
        else:
            print("Not a valid direction!")
            valid_selection = False
    elif x == 3 and y == 1:
        print("Victory!")
        break

你可以让你的函数接收
x
y
作为参数,删除While True并用它的创建替换它,比如
def MyFunc(x,y)
,将
有效的_选择
变量放入其中,并删除
x
y
属性。然后在代码末尾调用它,将
1
1
作为所需参数传递,如
MyFunc(1,1)
创建函数的方法有很多。 首先,您需要抽象出您的程序的功能。函数的名称必须表示这一点。 第二,你需要知道什么是输入。在您的情况下,输入必须是x和y,或这些输入的专有名称

函数将返回的答案非常重要。用户将看到打印,或者函数的用户将使用数字、字符串或其他对象来输入其他函数


我希望这不会令人困惑

我想要的参数可以被指定为x和y,我唯一可以用来指导x和y的参数是选择输入。好的,在进行任何选择输入之前,你使用x=1和y=1来初始化游戏,所以MyFunc(1,1)只会做同样的操作,将你重定向到相同的if(第一个)。我想我没有理解你的意思。你是对的,但我在while循环中,因为程序必须提示下一步,直到到达胜利。你可以在ifs之外创建一些其他标志,并将其设置为
True
,然后在到达胜利时将其设置为
False
。类似于
flag=True
while(flag):
然后
flag=False
打印(“胜利!”)之后
?你的目标是什么?到目前为止你尝试了什么?创建了一个函数来验证移动或返回“无效移动”,迷宫基本上有一个3x3的网格,因此对于每个方向,我将增加或减少x和y,但它不能到处移动,所以我必须检查坐标1,1,例如,或2,3等,by函数不存储值,ir总是重置为1,1,这是我的第一个问题。