2017-02-24 22 views
0
def playAgain(): 
    b = input('Do you want to play again? y/n') 
    if b == ('y'): 
     def startGame(): 
      startGame() 
    else: 
     print('Goodbye!') 
     time.sleep(1) 
     sys.exit() 
import random 
import time 
import sys 

global shots 
shots = 0 


while shots <=5: 
    chanceofDeath =random.randint(1,6) 
    input('press enter to play Russian roulette.') 
    if chanceofDeath ==1: 
     shots = shots + 1 
     print (shots) 
     print('You died.') 
     time.sleep(1) 
     playAgain() 
    else: 
     shots = shots + 1 
     print (shots) 
     print ('click') 


    if shots == 5: 
     print('You won without dying!') 
     time.sleep(1) 
     playAgain() 

私がプログラムを実行すると、再度再生するかどうかを尋ねるときにはいを選択すると動作しますが、最後のショットから続行します。たとえば、セカンドショットで死亡して再開した場合、再起動するのではなく、3ですぐに開始します。どのようにショットを毎回リセットするのですか?ショットを意味する0に戻って割り当てられることはありません、毎回グローバル値をリセットする方法はありますか?

import random 
import time 
import sys 

global shots 
shots = 0 

は一度だけ実行されます。あなたが実際に0に戻って、このコードを「ショット」を設定したことがないので

答えて

0

それが最後のショットから続けている理由です。何をしたい


は、ユーザーが再びプレーすることを選択した場合、「ショット」変数は、ユーザーが再びプレイしたい場合は、Trueを返すためにあなたのplayAgain()関数を編集することができ、バック0に設定されるべきです。たとえば、次のように

def playAgain(): 
    b = input('Do you want to play again? y/n') 
    if b == ('y'): 
     return True 
    else: 
     print('Goodbye!') 
     time.sleep(1) 
     sys.exit() 

これは、あなたがこのような0への「ショット」をループし、設定しながら、ユーザーがメインで再びプレーしたいかどうかをチェックすることができます:

if playAgain(): 
    shots = 0 

またショットが宣言されると関数の外側でwhileループがそれを使用する唯一のものであれば、グローバル変数として定義する必要はありません。プログラム

def playAgain(): 
    b = input('Do you want to play again? y/n') 
    if b == ('y'): 
     return True 
    else: 
     print('Goodbye!') 
     time.sleep(1) 
     sys.exit() 

import random 
import time 
import sys 

shots = 0 


while shots <=5: 
    chanceofDeath =random.randint(1,6) 
    input('press enter to play Russian roulette.') 
    if chanceofDeath ==1: 
     shots = shots + 1 
     print (shots) 
     print('You died.') 
     time.sleep(1) 

     if playAgain(): 
      shots = 0 

    else: 
     shots = shots + 1 
     print (shots) 
     print ('click') 

    if shots == 5: 
     print('You won without dying!') 
     time.sleep(1) 

     if playAgain(): 
      shots = 0 

改訂

また、私はあなたが以下を行うには、あなたのコードを望んでいたもののわからない午前:

def startGame(): 
    startGame() 

が、これは

を役に立てば幸い

関連する問題