2016-12-03 9 views
0

私は幽霊のような家を経由して冒険のゲームの事であるpythonプログラムを作っています。その中の大きなものの1つはowned_itemsというリストです。これは家の中で見つけたとき、または開始時にrandom.choiceによって与えられたときにそれに付けられた "マッチのボックス"や "トーチ"のような文字列によって表されるアイテムを得る。時には、彼らに状況が提示されるとき、それらが与えられる選択は、彼らが特定のアイテムを持っているかどうかに依存します。Python:if文を実行していない場合の出力

マイコード:

#bullets is the variable for pistol ammo. During my testing of this function, it is at 5 when it should start 
bullets=5 

owned_items=[] 
ronald_items=["a glass bottle", "a pistol", "a torch", "a small glass of  oil", "a box of matches", "a can of spray paint", "a small knife", "a pair of  surgical gloves", "a blessed amulet"] 
owned_items.append(random.choice(ronald_items)) 
ronald_items.remove(owned_items[0] 
owned_items.append(random.choice(ronald_items)) 
ronald_items.remove(owned_items[1]) 


#This part is in the actual definition where the problem appears when it should run 
def skeleton_choice(): 
    if "a glass bottle" in owned_items: 
     print('type "glass bottle" to attack the skeletons with that bottle') 
    if "a pistol" in owned_items and bullets>1: 
     print('type "shoot" to try firing your pistol at the skeletons') 
    if "a small knife" in owned_items: 
     print('type "small knife" to use your small knife against the skeletons') 
    if "a kitchen knife" in owned_items: 
     print('Type "kitchen knife" to use your kitchen knife against the skeletons') 
    if "a blessed amulet" in owned_items: 
     print('Type "amulet" to use the blessed amulet to make this a fairer fight') 
    print('Type "hands" to just fight the skeletons with your body') 
    print('Type "run" to try and get away from the skeletons') 

私は文、印刷物のどれもが現れた場合、私はこれらの内の項目の3を持っていることを知っていても。私はelifsとelseの代わりにifsを使っています。なぜなら、1つではなく、すべてのもののプリントを表示したいからです。たとえば、ガラス瓶と台所用ナイフを持っている場合は、ボトルとナイフの印刷ステートメントを伝えたいと思います。

+0

これが完全なコードで、 'def skeleton_choice()'のインデントエラーを無視すると、関数が呼び出されて実行されません。 – roganjosh

+1

あなたの関数の意図が間違っていて、 'def skeleton_choice(input)'のような入力がないようです。 – Bryan

+0

質問やコピー&ペーストに失敗したかどうかわかりませんが、骨格のskに沿って、defではなく。私が見ているインデントに間違いはありません。 –

答えて

1

あなたはどこにでも関数を呼び出さなかったので、それが機能しません。 だけ追加します。最後に

skeleton_choice() 

ラインを。また、ライン内に

ronald_items.remove(owned_items[0] 

あなたはカッコがありません。

+0

不足している括弧は、実際のプログラムではなく、問題にしかありません(私はインデントの問題の後にコピー+ペーストを信頼していませんでした)、それは私が今までの最も愚かな人間です。私はスケルトンの仕組みを変更していました。私はそれのための関数を定義することを決めたとき、私は実際に関数を実行することを忘れました。それは今、完璧に動作します。 –

0

あなたのコードは私の仕事です。それは、私がskeleton_choice()に呼び出しを追加した後です。あなたはそれを呼んでいないかもしれませんか?

関連する問題