用我的文字冒险游戏输入麻烦

时间:2015-03-01 03:58:56

标签: python text input shutdown adventure

在下面查看我的整个项目代码。它没有完成

这就是游戏的工作方式:你输入要做的动作,如果它存在,玩家就会这样做。代码检查您输入的单词是否与该特定房间中该单词类似的任何内容匹配。问题是输入输入的机会并不总是给你,项目刚刚结束或命令提示符关闭。请帮助我,以便在您键入的每个命令之后,保证不仅像现在这样关闭并允许玩家输入内容。

import os

os.system("cls")

openleft = '0'
openright = '0'
room = '0'
lights = '0'
draweropen = '0'
key = '0'
unlocked = '0'
open = ("It is already open.")
closed = ("It is already closed.")
shut = ("It is closed shut.")

print(" ")
print("*Stuck? Need Some Help? Try Using Some Commands Like:") 
print("Open / Close / Unlock / Enter / Look / Check / ")
print(" ")
print("---------------------------------------------------------------------")
print("Welcome To A Text Adventure")
print("---------------------------------------------------------------------")
print(" ")
print("---------------------------------------------------------------------")
print("The Building")
print("---------------------------------------------------------------------")
print(" ")
print(" ")
print("You awake on the hard floor of a white room.")

if room == '0':
    print("There are two wooden doors.")
    i = input(">>>")
    if 'look' in i:
        print ("You see nothing.")
        i = input(">>>")
    if 'check' in i:
        print ("You see nothing.")
        i = input(">>>")
    if 'open' in i:
        if 'left' not in i:
            if 'right' not in i:
                print("Open what?")
                i = input(">>>")
    if 'open' in i:
        if 'left' in i:
            if 'right' in i:
                print("Pick a single door.")
                i = input(">>>")
    if 'open' in i:
        if 'left' in i:
            if 'right' not in i:
                if openleft == '0':
                    print("You open the left door.")
                    openleft = '1'
                    i = input(">>>")
                else:
                    print(open)
                    i = input(">>>")
    if 'open' in i:
        if 'right' in i:
            if 'left' not in i:
                if unlocked == '0':
                    print("You attempt to open the door, but it's locked.")
                    i = input(">>>")
                if unlocked == '1':
                    if openright == '0':
                        print("You open the right door.")
                        openright = '1'
                        i = input(">>>")
                    else:
                        print(open)
                        i = input(">>>")
    if 'unlock' in i:
        if 'right' in i:
            if 'left' in i:
                print("Pick a single door.")
                i = input(">>>")
    if 'unlock' in i:
        if 'right' not in i:
            if 'left' not in i:
                print("Unlock what?")
                i = input(">>>")
    if 'unlock' in i:
        if 'right' not in i:
            if 'left' in i:
                print("It does not have a lock.")
                i = input(">>>")
    if 'unlock' in i:
        if 'right' in i:
            if 'left' not in i:
                if key == '0':
                    print("You cannot without a key.")
                    i = input(">>>")
                if key == '1':
                    if unlocked == '0':
                        print("You unlock the door.")
                        unlocked = '1'
                        i = input(">>>")
                    if unlocked == '1':
                        print("It is already unlocked.")
                        i = input(">>>")
    if 'close' in i:
        if 'left' not in i:
            if 'right' not in i:
                print("Open what?")
                i = input(">>>")
    if 'close' in i:
        if 'left' in i:
            if 'right' in i:
                print("Pick a single door.")
                i = input(">>>")
    if 'close' in i:
        if 'left' in i:
            if 'right' not in i:
                if openleft == '0':
                    print(closed)
                    i = input(">>>")
                else:
                    print("You close the left door.")
                    openleft = '0'
                    i = input(">>>")
    if 'close' in i:
        if 'right' in i:
            if 'left' not in i:
                if openright == '0':
                    print(closed)
                else:
                    print("You close the right door.")
                    openright = '0'
                    i = input(">>>")
    if 'enter' in i:
        if 'right' in i:
            if 'left' in i:
                print("You cannot enter both.")
                i = input(">>>")
    if 'enter' in i:
        if 'right' not in i:
            if 'left' not in i:
                print("Enter what?")
                i = input(">>>")
    if 'enter' in i:
        if 'right' in i:
            if 'left' not in i:
                if openright == '0':
                    print(shut)
                    i = input(">>>")
                if openright == '1':
                    print("You enter.")
                    room = '2'
    if 'enter' in i:
        if 'right' not in i:
            if 'left' in i:
                if openleft == '0':
                    print(shut)
                    i = input(">>>")
                if openleft == '1':
                    print("You enter.")
                    print ("It is a dark room.")
                    room = '1'
    if 'enter' not in i:
        if 'open' not in i:
            if 'close' not in i:
                if 'left' not in i:
                    if 'right' not in i:
                        if 'open' not in i:
                            if 'close' not in i:
                                if 'unlock' not in i:
                                    if 'look' not in i:
                                        if 'check' not in i:
                                            print("What?")
                                            i = input(">>>")
if room == '1':
    print ("You barely see the light switch next to you.")
    i = input(">>>")
    if 'flip' in i:
        if 'switch' in i:
                if lights == '0':
                    print("You turn on the lights.")
                    lights = '1'
                else:
                    print("You turn off the lights.")
                    lights = '0'
    if 'turn' in i:
        if 'on' in i:
            if 'off' not in i:
                if lights == '0':
                    print("You turn on the lights.")
                    lights = '1'
                else:
                    print("The lights are already on.")
    if 'turn' in i:
        if 'off' in i:
            if 'on' not in i:
                if lights == '1':
                    print("You turn off the lights.")
                    lights = '0'
                else:
                    print("The light are already off")
    if 'look' in i:
        if 'drawer' not in i:
            if lights == '0':
                print("It is too dark to see.")
            if lights == '1':
                print("You see a drawer in the corner of the room.")
    if 'check' in i:
        if 'drawer' not in i:
            if lights == '0':
                print("It is too dark to see.")
            if lights == '1':
                print("You see a drawer in the corner of the room.")

1 个答案:

答案 0 :(得分:0)

您应该使用while循环连续获取输入,直到指定的中断条件发生。目前你的程序中发生的是代码落在if语句的末尾。

if room == '1':
    print ("You barely see the light switch next to you.")
    i = input(">>>")
    if 'flip' in i:
        if 'switch' in i:
                if lights == '0':
                    print("You turn on the lights.")
                    lights = '1'
                else:
                    print("You turn off the lights.")
                    lights = '0'
    if 'turn' in i:
        if 'on' in i:
            if 'off' not in i:
                if lights == '0':
                    print("You turn on the lights.")
                    lights = '1'
                else:
                    print("The lights are already on.")
    if 'turn' in i:
        if 'off' in i:
            if 'on' not in i:
                if lights == '1':
                    print("You turn off the lights.")
                    lights = '0'
                else:
                    print("The light are already off")
    if 'look' in i:
        if 'drawer' not in i:
            if lights == '0':
                print("It is too dark to see.")
            if lights == '1':
                print("You see a drawer in the corner of the room.")
    if 'check' in i:
        if 'drawer' not in i:
            if lights == '0':
                print("It is too dark to see.")
            if lights == '1':
                print("You see a drawer in the corner of the room.")

在这段代码中,输入只被要求一次。如果你这样做。

if room == '1':
    print ("You barely see the light switch next to you.")
    while(cond):
         rest of the code

然后将cond标记为false以在完成时结束循环。