2016-03-23 5 views
-2

私は1つの間違った答えの後にもう一度やり直すチャンスを得る乗算プログラムをしようとしていました。Python Multiplication Programゲーム、再試行オプション

私のコードです:問題が再び質問をするとき、それが正しい答えを計算しないで

from random import randint 

wrong_answers = 0 

for turn in range(100): 

    # Choose two random integers for the question to the player 
    factor_1 = randint(2,12) 
    factor_2 = randint(2,12) 

    # Precompute the correct answer to be able to check the player's answer 
    correct_answer = factor_1*factor_2 

    # As the question and get the player's response 
    question = 'What is ' + str(factor_1) + ' times ' + str(factor_2) + ' times ' + '?' 
    answer_string = raw_input(question) 

    #Convert the player's response to a number (raw_input yields a string) 
    answer_int = int(answer_string) 

    # See if the player's answer is correct or not, and proceed accordingly 
    if (answer_int == correct_answer): 
     print 'Correct!' 
    else: 
     print 'Wrong! Try Again!' 
     raw_input(question) 
     answer_int = int(answer_string) 
    if raw_input() == correct_answer: 
      print 'Correct' 
    else: 
      wrong_answers = wrong_answers + 1 
    if wrong_answers == 2: 
      print 'Game Over Thanks for playing!!!' 
      exit() 

...それはそれを無視して、として間違った答えをカウントします。 2回目の間違った答えの後、プログラムは終了する。

もう一度質問をして、正解を数え、間違った答えをエラーとして再度カウントしてプログラムが続行する方法はありますか?

答えて

0

答えを求めるときは、ユーザが入力した内容をanswer_stringに割り当てないので、元の値を使用してanswer_intを計算します。しかし、あなたがanswer_intの代わりにraw_input()を使用して、エントリが正しいかどうかを確認するので、それは問題ではないと思います。

+0

私はこの部分を修正しましたが、今は動作すると思います: else: print '間違っています!再試行する!' answer_string = raw_input() answer_int = int(answer_string) answer_int == correct_answer: 'Correct'i printこの部分を修正しました: –

1

答えを求める必要はありません。実際には、この時点でプログラムはまだ答えを処理していないので、あなたはそれを行うべきではありません。コードは次のようになりますので、私は、最初に「他」にwrong_answers変数をインクリメントします:「!間違っもう一度試してみてください!」の出力がされることを

# See if the player's answer is correct or not, and proceed accordingly 
if (answer_int == correct_answer): 
    print 'Correct!' 
else: 
    if wrong_answers < 1: 
     print 'Wrong! Try Again!' 
    else: 
     print 'Wrong!' 
    wrong_answers = wrong_answers + 1 

は注意答えが終わるとゲームが終わってしまいます。ゲームが終了した場合は、「間違っている!ゲームオーバーに感謝!!!」となります。

私はここにデモを残します:https://repl.it/ByyD/0

私はそれがあなたを助けてくれることを願っています。