2013-09-08 2 views
0

У меня возникают проблемы с входным вопросом, который должен позволить игроку выбрать одну из 5 стартовых расов. Я использовал следующий код.Python 3 input и if statement

def racechoice(): 
    players.race = input('After you get a chance to think, you choose to be...') #Here race is chosen 
    if players.race == "dwarf" or "Dwarf": #Race starting stats 
     players.race = "Dwarf" 
     players.level = 1 
     players.strength = 12 
     players.agility = 6 
     players.inteligence = 8 
     players.vitality = 14 
    elif players.race == "Orc" or "orc": 
     players.race = "Orc" 
     players.level = 1 
     players.strength = 14 
     players.agility = 10 
     players.inteligence = 4 
     players.vitality = 12 
    elif players.race == "elf" or "Elf": 
     players.level = 1 
     players.race = "Elf" 
     players.strength = 8 
     players.agility = 13 
     players.inteligence = 12 
     players.vitality = 7 
    elif players.race == "Human" or "human": 
     players.level = 1 
     players.race = "Human" 
     players.strength = 10 
     players.agility = 10 
     players.inteligence = 10 
     players.vitality = 10 
    elif players.race == "gnome" or "Gnome": 
     players.race = "Gnome" 
     players.strength = 5 
     players.agility = 11 
     players.intelligence = 17 
     players.vitality = 7 

При вызова для отображения статистики игрока:

def stats(): 
    print(players.name) 
    print(players.race) 
    print("Level: "+ str(players.level) +" Strength: "+ str(players.strength) +" Agility: " + str(players.agility) +" Inteligence: "+ str(players.inteligence) +" Vitality: "+ str(players.vitality)) 

Он не возвращается, как карлик с карликовой статистикой, независимо от того, что выбирает игрок. Я новичок в Python и задавался вопросом, не правильно ли я использовал инструкции if/elif? ех) После того, как вы получите шанс подумать, вы хотите быть ... Орк ECEP Dwarf Уровень: 1 Сила: 12 Ловкость: 6 интеллект: 8 Живучесть: 14

+0

На самом деле это связано с пониманием того, как обрабатывать ввод пользователя со списком допустимых параметров. Игра - это просто контекст, в котором вы работаете, но это концепция, которую вам нужно понять. – WarrenT

+1

Если вы собираетесь использовать теги, ознакомьтесь с имеющимися тегами и прочитайте, что они означают на этом сайте, который предназначен для профессиональных и «энтузиастов». RPG является одним из наиболее широко используемых языков среди профессиональных программистов, работающих под основными бизнес-приложениями за кулисами в более крупных компаниях, чем большинство людей понимают. – WarrenT

ответ

0

Существует проблема, вы должны делать:

if players.race == "dwarf" or "players.race == Dwarf": 

Но еще лучше, изменить условия:

elif players.race.lower() == "orc": 

также рекомендуется использовать класс для инкапсуляции функциональности, например:

class Player(object): 
    def __init__(self, race, level, strength, agility, inteligence, vitality): 
     self.race = race 
     self.level = level 
     self.strength = strength 
     self.agility = agility 
     self.inteligence = inteligence 
     self.vitality = vitality 

player = Player('Dwarf', 1, 12, 6, 8, 14) 

тогда ваша racechoice функция будет выглядеть так:

def racechoice(): 
    race = input('After you get a chance to think, you choose to be...') 
    if race.lower() == 'dwarf': 
     player = Player('Dwarf', 1, 12, 6, 8, 14) 
    elif race.lower() == 'orc': 
     player = Player('Orc', 1, 14, 10, 4, 12) 
    ... 
    return player 
+0

Я изменил его, но получил тот же результат. Все еще получаю гонку гномов и статистику. –

+0

Как вы называете функцию 'racechoice'? – elyase

+0

Я назвал его с помощью racechoice() –

0

Вы не можете использовать or таким образом. Все ваши if/elif заявление должно иметь форму:

if players.race == "dwarf" or players.race == "Dwarf": 

"Dwarf" все сам по себе считается True на Python и пустыми строками "" считается False, поэтому ваш первый if всегда удается.

+0

Это сработало и получило правильный вывод. После того, как вы получите шанс подумать, вы решили стать ... Орк Ecep Орк Уровень: 1 Сила: 14 Ловкость: 10 Интеллект: 4 Жизнеспособность: 12 –