从用户输入中调用已定义的房间名称?

时间:2017-01-29 17:40:47

标签: python python-3.x

我似乎无法找到解决问题的好方法。我正在尝试为我的游戏创建维护模式,我希望用户能够从主菜单输入房间名称,并能够产生到该房间。这是代码。我有一个模块设置为

Class MM():
    def Room_Name():
        pass

这只是通过显然,然后在游戏中我有这个。

def MaintenanceMode():
    MM.Room_Name()

现在这个代码就像一个魅力,我可以把一个房间名称放在MM.Room_Name()的括号内,我产生到房间没问题。我想要的是一个更友好的用户版本。

好的,所以我在游戏的主菜单中进行设置,输入一个进入维护模式的代码,然后检查MM.Room_Name()以便调用房间。相反,当我在主菜单中输入代码时,我想要一个房间名称,并在那里产生。我似乎无法让这个工作,我疯狂地搜索找到一个解决方案。我试过了

ask = input("Which room do you want to go?>: ")
MM.Room_Name(ask())

但我不能让它工作,我只是得到str不可调用,我尝试了几个其他解决方案的问题,甚至更复杂的版本我做了什么,仍然没有任何工作。我试图避免在这里问,因为我担心这个问题已经得到了回答,但我已经被困了几个星期而且我有点绝望。是的,我试过

ask = str(input("Which room do you want to go?>: "))

但我仍然没有运气。如果可能的话,我想避免在我的游戏中列出所有房间并列出清单。但如果这是我唯一的解决方案,我想它不会受到伤害。我想,因为我可以在MM.Room_Name(Escape())中调用房间名称,必须有一种方法让用户输入进入并可以调用。有什么建议吗?我真的很感激。

vEdit 1v

所以代码模拟我想要的东西。运行此代码并在主菜单中键入164进入维护模式,它将生成到MM.Room_Name(Bedroom())中的房间Bedroom()。我想要的是让用户输入密码164,它会询问玩家你想要产生什么房间,并以某种方式从用户输入调用该房间。不要尝试任何其他选项,只需在菜单中输入164,它就会产生到Bedroom()。因此,我需要弄清楚如何将用户输入转换为可调用功能,这样玩家尝试维护模式时不必在每次想要不同房间时编辑MM.Room_Name()中的房间,而是当玩家进入维护时模式,游戏要求房间名称,并在那里产卵。我包括一间卧室和一间客厅供你们测试。只需在MM.Room_Name()之间切换它们,并在进入维护模式时查看它是如何工作的。希望这可以让您了解我希望用户输入版本如何工作。

import time
class MM():
    def Room_Name():
        pass
def Question():
    return input("You entered the Room, What do you do?>: ")

def space():
    print(" ")

def pass1():
    while True:
        space()
        return input("**Press Enter**")
        break

def what():
    space()
    print("I didn't understand that.")
    space()
def MaintenanceMode():
    print("Check MaintenanceMode() Block On Line 49 To Change Room's!")
    print("V  V  V  V  V  V  V  V  V  V  V  V  V  V  V  V  V  V  V  V")
    space()
    MM.Room_Name(Bedroom())
def Menu():
    space()
    space()
    print("**The Hunter**")
    space()
    print("Press 1: To Start The Game")
    space()
    print("Press 2: For Story")
    space()
    print("Press 3: To Quit")
    space()
    Choice_input0()

def Choice_input0():
    while True:
        def Choice():
            return input("What do you want to do?>: ")
        Player = Choice()
        if Player == '1':
            p.next_source()
            time.sleep(1)
            Startgame()
        elif Player == '2':
            Storyinfo()
        elif Player == '3':
            print('Exit Okay!')
        elif Player == '164':
            space()
            print('Maintenance Mode Active!')
            MaintenanceMode()
        else:
            what()
def Bedroom():
    while True:
        def Choice():
            Question()
        Player = Question()
        if Player in ['look around']:
            space()
            print("You see the Bedroom")
            space()
        else:
            what()

def Livingroom():
    while True:
        def Choice():
            Question()
        Player = Question()
        if Player in ['look around']:
            space()
            print("You see the Livingroom")
            space()
        else:
            what()

Menu()

1 个答案:

答案 0 :(得分:0)

分配ask后,您不应该尝试将其称为函数,因为它是一个字符串。所以

MM.Room_Name(ask)
没有ask()上的parantheses的

可能会更好。