Python House Adventure - Как сделать другой вывод, если вы уже вошли в комнату один раз - PullRequest
0 голосов
/ 02 ноября 2018

Так что в основном я делаю текстовую приключенческую игру с использованием 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()

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Когда комната введена, установите переменную. Сделайте оператор if-else в каждой комнате, проверяя значение переменной, и, если переменная показывает, что она изменена на состояние «Вы уже были здесь», покажите сообщение «Вы уже были здесь».

0 голосов
/ 02 ноября 2018

Вам нужна переменная, которая имеет другое значение после того, как игрок вошел в комнату. Вы можете инициализировать флаг или счетчик в начале игры, проверить его перед отображением сообщения, затем установить его (для флага) или увеличить его (для счетчика), когда игрок входит в комнату.

...