2016-03-09 3 views
0

Почему не работает.Селектор классов для начала игры

Его простой код выбора, который позволяет выбрать символ

импорт случайных

def Number(): 
    print ("1:Warrior") 
    print ("2:Ninja") 
    print ("3:Wizard") 
    print ("4:Terrorist") 
    print ("5:Sniper") 
    print() 
    ClassNo = input("Pick you class:\n") 
    return ClassNo 

def Class(ClassNo): 
    Class = "" 
    if ClassNo == 1: 
     Class = "Warrior" 
     print ("you picked" ,Class) 
    elif ClassNo == 2: 
     Class = "Ninja" 
     print ("you picked Ninja") 
    elif ClassNo == 3: 
     Class = "Wizard" 
     print ("you picked" ,Class) 
    elif ClassNo == 4: 
     Class = "Terrorist" 
     print ("you picked" ,Class) 
    elif ClassNo == 5: 
     Class = "Sniper" 
     print ("you picked" ,Class) 
    return Class 

Number() 
Class(ClassNo) 
print (Class) 

Он продолжает говорить, что ClassNo инст определен, но тогда, когда я определяю его придумать и ошибки плз помощь

+1

Это действительно плохая идея повторно использовать встроенный в именах, как «класс» для имен переменных и функций. –

ответ

2

Вы должны поймать возвращаемое значение функции Number, то есть:

classNo = Number(); 
playerClass = Class(classNo) 
print playerClass 

Несколько других указателей. По соглашению мы используем lower_case или camelCase для имен переменных и функций, и мы используем прописные буквы для имен классов. Кроме того, если вы используете много elif в строке, вам, вероятно, нужен словарь. Вот пример:

possibleClasses = {1:"Warrior", 
        2:"Ninja", 
        3:"Wizard", 
        4:"Terrorist", 
        5:"Sniper"} 

def pickClass(): 
    for number, playerClass in possibleClasses.items(): 
     print number, ":", playerClass 
    classNo = raw_input("Pick you class:\n") 
    classNo = int(classNo) 
    return classNo 

playerClass = pickClass() 
className = possibleClasses[playerClass] 
print className 
0

Мой первый комментарий здесь, Im также довольно нуб на питона, но я считаю, что единственный вход у вас есть в пределах одной функции, поэтому, что ввод отбрасывается, когда вы выходите из этой функции ,

Вам следует запросить ввод класса вне функции, чтобы он мог использоваться во всем мире в вашем коде.

Если я не прав, я был бы рад за кого-то, чтобы ударить меня по голове ...

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