2016-09-22 2 views
0

я недавно начал простое кодирование с Python 3 и i'm застрял с простой проблемой:Простые, случайные встречи в питона текст-приключения .. I'm застрял


import random 

def enemy_bandit01(): 
    bandit01 = {'race': 'human', 'weapon': 'a sword'} 

def enemy_orc01(): 
    orc01 = {'race': 'orc', 'weapon': 'a club'} 

def enemy_wolf01(): 
    wolf01 = {'race': 'wolf', 'weapon': 'claws'} 

encounter_choice = [enemy_bandit01, enemy_orc01, enemy_wolf01] 

print('You fight against a ____. He has ____!') 

Я просто хочу, чтобы python выбрал случайную функцию enemy_x - и затем распечатал текст, включающий в себя расу/оружие и т. Д., Не набирая новый текст для каждого врага.

Я знаю, что это вопрос о нобе, но я не смог понять это сам.

ответ

1

в dicts и ваши функции на самом деле бессмысленно, как они есть, они должны фактическое возвращение чего-то, так что вы можете случайно выбрать пару:

from random import choice # use to pick a random element from encounter_choice 

def enemy_bandit01(): 
    return 'human', 'a sword' # just return a tuple 


def enemy_orc01(): 
    return 'orc', 'a club' 


def enemy_wolf01(): 
    return 'wolf', 'claws' 


encounter_choice = [enemy_bandit01, enemy_orc01, enemy_wolf01] 

# use str.format and unpack the tuple of race, weapon 
print('You fight against a {}. He has {}!'.format(*choice(encounter_choice)())) 

, который может также просто стать собиранием случайного кортежа из списка :

from random import choice 

encounter_choice = [('human', 'a sword'), ('orc', 'a club'), ('wolf', 'claws') ] 

print('You fight against a {}. He has {}!'.format(*choice(encounter_choice))) 

*choice(encounter_choice) эквивалентно делать:

race, weapon = choice(encounter_choice) 
print('You fight against a {}. He has {}!'.format(race, weapon)) 
+0

Спасибо, что REALL я помог мне! :) – BobJohn

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