Issue
When I ask the user what object they'd like to use the program ignores the elif statement.
from __future__ import print_function
import random
#Variables
name = raw_input
answer = raw_input
objectList = ['coin', 'piece of paper', 'bundle of sticks']
#Game code
def game():
name = raw_input("What is your name?: ")
print ('-----------------------------------------------------------------')
print ('Hello, ' + str(name) + ', you tripped into a hole and fell unconcious')
print ('to wake up in a dungeon. There is a door in front of you, but it ')
print ('seems to be locked.')
print ("\n")
print ('Look around for a tool?')
askForObject()
#answer for question
def askForObject():
if "yes" in answer():
print('-----------------------------------------------------------------')
print('There are two objects on the ground; a mysterious contraption with')
print('two prongs, and a ' + random.choice(objectList) + '.')
print("\n")
print('Which tool will you pick up? The contraption or the object?')
pickUpPrompt()
else:
print('What do you mean? Yes, or no?')
askForObject()
#ask the user what tool they will pick up
def pickUpPrompt():
if 'object' in answer():
print('You picked up the object, but it has no apparent use on the door')
print('Try again')
pickUpPrompt()
elif 'contraption' in answer():
print('You picked up the contraption.')
doorPrompt()
else:
print('What object are you talking about?')
pickUpPrompt()
def doorPrompt():
print ('-----------------------------------------------------------------')
print ('Will you use the contraption on the door?')
if 'yes' in answer():
print ('door')
game()
I've tried using different operators instead but I've run into problems with how the string is called. It seems to work if you input the same answer twice but I don't know why that is.
Solution
The elif isn't working properly because it calls the raw_input a second time. That's why entering the same answer twice works, because the second entry matches the elif condition. What you could do is call raw_input in the first line of pickUpPrompt and save it as a variable, then use the if/elif/else.
def pickUpPrompt():
ans = answer()
if 'object' in ans:
print('You picked up the object, but it has no apparent use on the door')
print('Try again')
pickUpPrompt()
elif 'contraption' in ans:
print('You picked up the contraption.')
doorPrompt()
else:
print('What object are you talking about?')
pickUpPrompt()
Answered By - schwartz721
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.