Python House Adventure-如果您已经进入一个房间一次,如何提供不同的输出

Python House Adventure-如果您已经进入一个房间一次,如何提供不同的输出,python,adventure,Python,Adventure,基本上,我正在用python制作一个文本冒险游戏,目标是根据线索和谜语在房子的某个地方找到一个奖品。当你进入房子的一个房间,告诉程序你是否想去北方,南方,东或西,它给你一个房间的描述,但在某些情况下,当你进入一个房间时,除了你刚来的房间,没有其他地方可以去,所以我想让它成为一个不同的输出,如果你已经进入了房子里的一个房间。我该怎么做 class bc: HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m'

基本上,我正在用python制作一个文本冒险游戏,目标是根据线索和谜语在房子的某个地方找到一个奖品。当你进入房子的一个房间,告诉程序你是否想去北方,南方,东或西,它给你一个房间的描述,但在某些情况下,当你进入一个房间时,除了你刚来的房间,没有其他地方可以去,所以我想让它成为一个不同的输出,如果你已经进入了房子里的一个房间。我该怎么做

class bc:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

inventory = []
chest = "Chest"
key = "Key"
book = "Book"
picture = "Picture"

def playGame():
    location = "Porch"
    show_intro()
    while not (location == "Exit"):
        showRoom(location)
        direction = str(input(bc.BOLD + bc.HEADER + "Which direction 
do you want to go?: \n" + bc.ENDC))
        location = pickRoom(direction, location)

def show_intro():
    print(bc.BOLD + """Welcome to a game with no graphics so you get 
more FPS's!
Old man Mesarosh lived here years ago before he and his wife suddenly 
disappeared.
Before he died, it was said that he left behind a chest full of 
treasure.
It's your job to figure out where he left it, and fast...
Police drive by every 30 minutes searching for teens exploring the 
abandoned house
Find the clues left behind by Mesarosh and find where the treasure is 
hidden.
Type "North", "South", "East" or "West" to decide which way to go.
Good luck! \n""" + bc.ENDC)

def pickRoom(direction, room):
    while True:
        if(direction == "quit") or (direction == "exit"):
            print("Better luck next time!")
            return "Exit"
        elif room == "Porch":
            if direction.lower() == "north":
                return "Pantry"
        elif room == "Pantry":
            if direction.lower() == "north":
                return "Kitchen"
            elif direction.lower() == "east":
                return "DiningRoom"
        elif room == "DiningRoom":
            if direction.lower() == "west":
                return "Pantry"
        elif room == "Kitchen":
            if direction.lower() == "west":
                return "LivingRoom"
            elif direction.lower() == "east":
                return "Bedroom"
        elif room == "Bedroom":
            if direction.lower() == "west":
                return "Kitchen"
        elif room == "LivingRoom":
            if direction.lower() == "west":
                return "Bathroom"
            elif direction.lower() == "north":
                return "Stairs"
        elif room == "Bathroom":
            if direction.lower() == "east":
                return "LivingRoom"
        elif room == "Stairs":
            if direction.lower() == "south":
                return "Bar"
        elif room == "Bar":
            if direction.lower() == "east":
                return "Shop"
        elif room == "Shop":
            if direction.lower() == "north":
                return "Closet"
            elif direction.lower() == "south":
                return "Storage"
        elif room == "Storage":
            if direction.lower() == "north":
                return "Shop"
        elif room == "Closet":
            if direction.lower() == "south":
                return "Shop"


def showRoom(room):
    if room == "Porch": #Done
        showPorch()
    elif room == "Pantry": #Done
        showPantry()
    elif room == "Kitchen": #Done
        showKitchen()
    elif room == "DiningRoom": #Done
        showDining()
    elif room == "Bedroom": #Done
        showBedroom()
    elif room == "LivingRoom": #Done
        showLiving()
    elif room == "Bathroom": #Done
        showBathroom()
    elif room == "Stairs": #Done
        showStairs()
    elif room == "Bar": #Done
        showBar()
    elif room == "Shop": #Done
        showShop()
    elif room == "Storage": #Done
        showStorage()
    elif room == "Closet": #Done
        showCloset()

playGame()

玩家进入房间后,您需要一个具有不同值的变量。您可以在游戏开始时初始化一个标志或计数器,在显示消息之前检查它,然后在玩家进入房间时设置它(用于标志)或增加它(用于计数器)。

当进入房间时,设置一个变量。在每个房间中输入if-else语句,检查变量的值,如果变量显示更改为you-have-been-here状态,则显示you-have-been-here消息。

这与其说是一个实际的代码问题,不如说是一个关于实现的问题。我建议阅读帮助页面以及如何提问,因为这可能与主题无关。不过,要回答您的问题,您需要一些方法来跟踪何时进入房间。此变量将控制文本冒险的“状态”,您可以编写If语句或其他程序流来控制此“状态”如何影响冒险。如果您有一个特定的编程问题,这将导致一个主题问题。我建议在这个意义上进行修改。关于项目的建议是针对另一个堆栈的哦,天哪,我没有想到这一点。我试图创建一个空列表,当您输入一个房间时,该列表将添加到房间列表中,然后再次输入时检查该房间是否在列表中,如果在列表中,则会提供不同的输出,但最终无法工作。谢谢你,伙计,我会试试看。@ApexMC如果你想追踪每个房间的话,这听起来不是一个坏方法。如果您发布代码,我们可能会帮助您解决为什么这不起作用的问题。(如果你有一个小地图,虽然,个别标志变量应该可以工作。)我把代码添加到原始帖子中,在我发布的内容之后有很多内容,只是当你进入每个房间时打印的对话框,但我真的不想将所有内容缩进这个网站,所以是的。我也知道,这个对话很俗气,但它是为大学一年级的CS班准备的,所以它是故意的bad@ApexMC你能发布其中一个
展厅功能吗?这是您希望检查标志并显示不同消息的代码。