2016-10-28 8 views
-1

私はスクリプトゲームを作っており、このコードを複数の選択肢に使用しています。この問題が発生した後は、AまたはBを入力すると、それが必要なテキストを出力しますし、再度お聞き無限ループを止めるには?

while True: 
d1a = input ("Do you want to: A) Befriend Fred. B) Be mean to Fred. [A/B]? : ") 
if d1a == "A": 
    print ("You befriend fred. You now have a friend..") 
elif d1a == "B": 
    print ("You angered Fred. He kills you. RIP.") 
elif d1a == "Q" : 
    break 

「あなたはフレッドを仲良くしたいですか?」あなたは一回の反復後のループを残しておきたい場合はループは必要ありません。また

while True: 
    d1a = input ("Do you want to: A) Befriend Fred. B) Be mean to Fred. [A/B]? : ") 
    if d1a == "A": 
     print ("You befriend fred. You now have a friend..") 
     break 
    elif d1a == "B": 
     print ("You angered Fred. He kills you. RIP.") 
     break 
    elif d1a == "Q" : 
     break 

:など

+2

最初の2つの条件の後に 'break'を使用してください。 – Marcin

+1

とインデントを修正してください。 – Julien

+1

このコードがループ内にある理由はありません –

答えて

0

あなたは、単にそれぞれの条件にbreak文を追加することができます。しかし、正しい入力が得られるまでループしていると仮定します。その場合、入力が正しくないことをプレイヤーに伝えるといいかもしれません:

while True: 
    d1a = input ("Do you want to: A) Befriend Fred. B) Be mean to Fred. [A/B]? : ") 
    if d1a == "A": 
     print ("You befriend fred. You now have a friend..") 
     break 
    elif d1a == "B": 
     print ("You angered Fred. He kills you. RIP.") 
     break 
    else: 
     print("Incorrect input") 
+2

インデントを修正する必要があります –

+0

1)インデントが間違っている、2)重複した質問を閉じるために/ voteにフラグを付けることができます。 – TigerhawkT3

+0

OPから直接コピーされました - 最初は間違っていたことに気付かなかった。 – Darkstarone