2017-11-20 5 views
-2

このコードをプログラムで送信して、ユーザーが戦うmobを決定しますが、これになるたびに "Headless_Horseman(または、定義されていません。私は名前を「定義する」方法を理解できません。どうすれば特定のmobにラベルを付けて後で引き出すことができますか

def mob_picker_randmob1(): 
    global Zombie 
    global Zambie 
    global Giant_Worm 
    global Headless_Horseman 
    global Skeleton 
    global Ghost 
    global Ghoul 
    global Baby_Sister 
    global Little_Sister 
    global Big_Sister 
    randmob1=random.randint(1,5) 
    if randmob1 == 1: 
     randmob1 = Zombie 
     mob_picker_randmob2() 
    elif randmob1 == 2: 
     randmob1 = Skeleton 
     mob_picker_randmob2() 
    elif randmob1 == 3: 
     randmob1 = Giant_Worm 
     mob_picker_randmob2() 
    elif randmob1 == 4: 
     randmob1 = Headless_Horseman 
     mob_picker_randmob2() 
    elif randmob1 == 5: 
     randmob1 = Zambie 
     mob_picker_randmob2() 
+0

? –

+0

文字列を使用しましたか? –

+0

最後のもの以外のあなたのすべてのifはおそらくelifです。 –

答えて

0

グローバル変数として宣言しているので、main関数の変数に値を割り当てる必要があります。あなたが最初に `Headless_Horseman`変数を定義している

また
Zombie = 'zombie' 
Zambie = 'zAmbie' 
Giant_Worm = 'big worm' 
Headless_Horseman = 'horseman without head' 

、(random.choiceを使用することを検討してください)

choices = (
    Zombie, Zambie, Giant_Worm, Headless_Horseman, Skeleton, 
    Ghost, Ghoul, Baby_Sister, Little_Sister, Big_Sister, 
) 
return random.choice(choices) 
+0

これらの値をすべて値1で宣言すると、関数は常に1の値を選択します。 – tripleee

+0

これらの値をすべて1に割り当てることは、どちらを選択するかとは関係ありません。与えられたすべてが1の場合、関数は常に1を返しますが、OPが設定したいものがわからなければ、1に代入すると "未定義"エラーが修正されます。 OPは、彼らが望むものにそれらを割り当てることができますが、彼はそれらを何かに割り当てる必要があります。 –

関連する問題