On 06/03/2013 08:39 PM, eschneide...@comcast.net wrote:
Is there a more efficient way of doing this? Any help is gratly appreciated.
import random
def partdeux():
print('''A man lunges at you with a knife!
Do you DUCK or PARRY?''')
option1=('duck')
option2=('parry')
optionsindex=[option1, option2]
randomizer=random.choice(optionsindex)
while randomizer==option1:
if input() in option1:
print('he tumbles over you')
break
else:
print('he stabs you')
break
while randomizer==option2:
if input() in option2:
print('you trip him up')
break
else:
print('he stabs you')
break
partdeux()
Yes, you are making this much more complicated than necessary. It seems that what you are
trying to do is input the option, then randomly print a success or failure message for that
option. I suspect you didn't plan it, but it also prints the "stab" message for invalid entries.
Like any program, it can be approached in many different ways. Here is one
possibility.
(Just the function def, add the import and function call as well. Also I am not adding any
comments. See if you can follow the logic here yourself.)
----------
def partdeux():
print('A man lunges at you with a knife!')
option = input('Do you DUCK or PARRY? ').lower()
success = random.randint(0, 1)
if success:
if option == 'duck':
print('He tumbles over you')
return
if option == 'parry':
print('You trip him up')
return
print('He stabs you')
------------
BTW, ignore the response from Carlos. I can see from the print() functions in your original
that you're using Python 3. His answer is only valid for Python 2.
-=- Larry -=-
--
http://mail.python.org/mailman/listinfo/python-list