在while循环中重置原始输入(python)

在while循环中重置原始输入(python),python,while-loop,raw-input,Python,While Loop,Raw Input,所以我试图让这个引擎工作,我做到了,但它破坏了我的程序。(来自LPTHW) 我基本上是在尝试访问一个函数,其中它从用户那里获得了11次输入,如果用户猜不到正确的输入,他们就会死(在游戏中),但我修复了从引擎向函数发送提示的方法,似乎破坏了我获得11次输入的函数,并且对所有11次输入使用了相同的猜测 这是主机 globvar = ' ' class Game(object): def __init__(self, start): self.quips = [

所以我试图让这个引擎工作,我做到了,但它破坏了我的程序。(来自LPTHW)

我基本上是在尝试访问一个函数,其中它从用户那里获得了11次输入,如果用户猜不到正确的输入,他们就会死(在游戏中),但我修复了从引擎向函数发送提示的方法,似乎破坏了我获得11次输入的函数,并且对所有11次输入使用了相同的猜测

这是主机

globvar = ' '

class Game(object):

    def __init__(self, start):
        self.quips = [
            "You died.  You kinda suck at this.",
            "Your mom would be proud. If she were smarter.",
            "Such a luser.",
            "I have a small puppy that's better at this."
        ]
        self.start = start


    def play(self):
        # next_room_name is taken from init argument start
        next_room_name = self.start

        while True:
            global globvar
            print "\n--------"
            # set variable room to get function from next_room_name
            room = getattr(self, next_room_name)

            print room.__doc__

            if room == self.laser_weapon_armory:
                prompt = raw_input("[keypad]> ")

            elif room == self.escape_pod:
                prompt = raw_input("[pod #]> ")
            else:
                prompt = raw_input("> ")
        globvar = prompt     
            # unpacks function from next_room_name into room
            next_room_name = room()
这是我试图开始工作的功能

def laser_weapon_armory(self):
        """
        You do a dive roll into the Weapon Armory, crouch and scan the room
        for more Gothons that might be hiding.  It's dead quiet, too quiet.
        You stand up and run to the far side of the room and find the
        neutron bomb in its container.  There's a keypad lock on the box
        and you need the code to get the bomb out.  If you get the code
        wrong 10 times then the lock closes forever and you can't
        get the bomb.  The code is 3 digits.
        """
        code = "%d%d%d" % (randint(1,9), randint(1,9), randint(1,9))

        guess = globvar
        guesses = 0

        while guess != code and guesses < 10:
            print "BZZZZEDDD!"
            guesses += 1
            guess = globvar

        if guess == code:
            print "The container clicks open and the seal breaks, letting gas out."
            print "You grab the neutron bomb and run as fast as you can to the"
            print "bridge where you must place it in the right spot."
            return 'the_bridge'
        else:
            print "The lock buzzes one last time and then you hear a sickening"
            print "melting sound as the mechanism is fused together."
            print "You decide to sit there, and finally the Gothons blow up the"
            print "ship from their ship and you die."
            return 'death'

这就是你要找的东西吗?你的问题似乎不太清楚

while guess != code and guesses < 10:
        guess = raw_input("BZZZZEDDD! - try again?")
        guesses += 1
        guess = ''
while guess!=编码和猜测<10:
猜测=原始输入(“BZZZEDDD!-再试一次?”)
猜测+=1
猜测=“”

是的,这是有效的,很难用语言表达,但我基本上希望它停止反复使用提示符中的第一个变量,这是有效的!谢谢。@lerugray没问题,我对这个问题没有太多批评,我明白,当你不知道答案的时候,很难说出什么。我很累也于事无补:p希望你的项目结果顺利,祝你好运
while guess != code and guesses < 10:
        guess = raw_input("BZZZZEDDD! - try again?")
        guesses += 1
        guess = ''