Je crée un programme où le héros sauve deux otages en 10 secondes. Les premières choses qu'il doit faire sont de décider qui sauver en premier, puis tapez le code de la bombe pour sauver l'otage, si l'utilisateur tape le nom de l'otage à tort, il peut le saisir à nouveau. Mais après que je tape mal une fois que les boucles s'arrêtent ou après avoir fini de sauver le premier otage, la boucle s'arrête.'in' arrête de travailler après raw_input
Voici le code:
holly = True
molly = True
for i in range(0,11):
print "Who will you save?"
print "Time paste:", i
decide = raw_input("> ")
if decide == "Holly" and holly:
print "You decided to save Holly."
print "Whats the code?"
code = random.randint(100,1000)
print code
decide = int(raw_input("> "))
if decide != code:
exit('You are dead!')
print "You saved Holly!"
holly = False
elif decide == "Molly" and molly:
print "You decided to save Molly."
print "Whats the code?"
code = random.randint(100,1000)
print code
decide = int(raw_input("> "))
if decide != code:
exit('You are dead!')
print "You saved Molly!"
molly = False
elif not holly and not molly:
print "You saved both of them!"
break
else:
print "Try again!"
Je fais tout dans une classe, voici le code complet:
class Mountains(object):
def enter(self):
print "After you defeated Josh. You headed towards the mountains."
print "There you're final target sits."
print "Jim the \"Knigh\""
print "He has 2 hostages. Holly and Molly, you have 10 seconds to save them."
print "They are bought straped to a bomb, each one in different location"
print "Each bomb has a 3 digit code."
holly = True
molly = True
for i in range(0,11):
print "Who will you save?"
print "Time remaining:", i
decide = raw_input("> ")
if decide == "Holly" and holly:
print "You decided to save Holly."
print "Whats the code?"
code = random.randint(100,1000)
print code
decide = int(raw_input("> "))
if decide != code:
exit('You are dead!')
print "You saved Holly!"
holly = False
elif decide == "Molly" and molly:
print "You decided to save Molly."
print "Whats the code?"
code = random.randint(100,1000)
print code
decide = int(raw_input("> "))
if decide != code:
exit('You are dead!')
print "You saved Molly!"
molly = False
elif not holly and not molly:
print "You saved both of them!"
break
else:
print "Try again!"
if holly and molly:
exit("You are dead!")
print "After you saved both, Jim comes in angry!"
print "He takes his shotgun! And startes firing!"
print "You take cover, and start to think where to shoot!"
print "You only have 4 bullets! Make it count!"
hero = 100
villain = 100
bullets = 4
direction = ["up", "down", "left", "right"]
while True:
print "In which direction do you shoot?"
print "Hero health:",hero
print "Villain health:",villain
print "Bullets left:", bullets
if hero < 0:
exit("You are dead.")
elif villain < 0:
exit("You win")
elif bullets == 0:
exit("You are dead.")
bullets -= 1
shoot = random.choice(direction)
print shoot
choice = raw_input("> ")
if choice == shoot:
print "You shoot %s, hitting Jim but he also hits you." % shoot
hero -= random.randint(20,30)
villain -= random.randint(30,50)
elif choice != shoot:
print "You shoot %s, but you missed. Jim didn't miss." % shoot
hero -= random.randint(10,20)
else:
print "Try again."
else:
print "Try again"
Je ne peux pas reproduire le problème. Le code fait exactement ce qu'il semble faire. – JacobIRR
Le code fonctionne correctement séparément. Mais dans une classe ce n'est pas le cas. –
Comment utilisez-vous en utilisant le code dans la classe? S'il vous plaît [modifier] votre réponse et montrer cette partie. – martineau