2013-09-28 1 views
1

Я создаю текстовую игру в python 3.3.2, и я хочу отображать сообщение в зависимости от того, что происходит после того, как атака либо промахивается, либо попадает (выбрано случайно), вы получаете другое сообщение в зависимости от того, что происходит. это код до сих порОтвет на случайный выбор и если statment

print ("A huge spider as large as your fist crawls up your arm. Do you attack it? Y/N") 
attack_spider = input() 
#North/hand in hole/keep it in/attack 
if attack_spider == "Y": 
    attack = ['Miss', 'Miss', 'Miss', 'Miss', 'Hit'] 
    from random import choice 
    print (choice(attack)) 

Я думаю, это выглядит следующим образом:

if attack == 'Miss': 
    print ("You made the spider angry") 

, но это не видно на работу. Можно ли сделать это?

Я добавил код в ответ ниже, как так:

   if attack_spider == "Y": 
        attack = ['Miss', 'Miss', 'Miss', 'Miss', 'Hit'] 
        from random import choice 
        print (choice(attack)) 
        messages = { 
        "Miss": "You made the spider angry!", 
        "Hit": "You killed the spider!" 
        } 
        print messages[choice(attack)] 

, но знаете, когда я запускаю программу, я получаю ошибку следующим образом:

синтаксической ошибки и подсвечивает сообщения

сделал Я просто добавляю код неправильно или это что-то elese

ответ

3

Вы можете сделать:

result = random.choice(attack) 

if result == "Miss": 
    print("You made the spider angry!") 
elif result == "Hit": 
    print("You killed the spider!") 

Примечание (как упоминал Маттиас), что здесь важно хранить result. Если вы сделали:

if choice(attack) == "Miss": # Random runs once 
    ... 
if choice(attack) == "Hit": # Random runs a second time, possibly with different results 
    ... 

Вещи не будет работать, как и следовало ожидать, так как вы можете "Hit" на первый случайный и "Miss" на второй!


Но еще лучше, использовать словарь:

messages = { 
    "Miss": "You made the spider angry!", 
    "Hit": "You killed the spider!" 
} 

print(messages[choice(attack)]) 
+0

Удаляется мой ответ. Вы были первыми и даже обеспечили лучший способ сделать это. – Matthias

+0

@ Matthias Cheers, я добавил примечание, вдохновленное вашим ответом, чтобы объяснить, почему важно сохранить результат. –

+0

@ThomasOrozco Я добавил ваш код, как вы можете узнать, посмотрите в вопросе, знаете ли вы, как исправить ошибку. – dashernasher

Смежные вопросы