2017-07-14 10 views
0

私はちょうどPythonの基礎を学び終え、自分の知識を実践するために小さなRock、Paper、Scissorsゲームを作りたがっていました。Falseを返した後、再びwhileループを開始するにはどうすればよいですか?

今のところこれは私のコードです。だから、

from random import randint 


pipisuyu = 1 
while pipisuyu == 1: 

    secim = input("Taas kagit....") 
    AI = randint(0, 2) 
    if secim == "Tas" and AI == 0: 
     print ("Rakibiniz de Tas secti, berabere!") 


    elif secim == "Tas" and AI == 1: 
     print ("Rakibiniz kagit secmisti. Kaybettin!") 
     pipisuyu -= 1 
    elif secim == "Tas" and AI == 2: 
     print ("Rakibiniz makas secmisti. Kazandiniz!") 
     pipisuyu -= 1 
    elif secim == "Kagit" and AI == 0: 
     print ("Rakibiniz tas secmisti. Kazandiniz!") 
     pipisuyu -= 1 
    elif secim == "Kagit" and AI == 1: 
     print ("Rakibiniz de kagit secmisti. Berabere!") 
    elif secim == "Kagit" and AI == 2: 
     print ("Rakibiniz makas secmisti. Kaybettiniz!") 
     pipisuyu -= 1 
    elif secim == "Makas" and AI == 0: 
     print ("Rakibiniz tas secmisti. Kaybettiniz!") 
     pipisuyu -= 1 
    elif secim == "Makas" and AI == 1: 
     print ("Rakibiniz kagit secmisti. Kazandiniz!") 
     pipisuyu -= 1 
    elif secim == "Makas" and AI == 2: 
     print ("Rakibiniz de makas secmisti. Berabere!") 

、私はwhileループに私を持ち帰るであろう、再びプレーするためには、このゲームのためのオプションを作りたいです。私はこれを試しました。

if pipisuyu == 0: 
    anan = input("Tekrar oynamak isterseniz ""tekrar"" yaziniz.") 
    if anan == "tekrar": 
     pipisuyu += 1 

しかし、それは、私はループがすでにそれで行われ、再び動作しませんが、今pipisuyuは、1に等しいにもかかわらず信じている、動作しません。(?)

だから、私は感謝もし誰かが私に教えてもらえれば、ゲームを失ったり獲得したりした後に、どうすれば再びループに戻ることができますか?

+0

別のwhileループを! – wheaties

+2

以前の指示に戻ることはできません。あなたができることは何かを繰り返すことです。どのように何かを繰り返しますか?ループを使用する。したがって、誰も再プレイしないようになるまで、ループを繰り返してゲームを繰り返します。 – poke

+0

それを関数に入れますか?これはどんな言語ですか? 「ピピスユー」? –

答えて

1

ゲームに関数を入れ、pipisuyuが0のときは、再度実行関数を呼び出します。実行するたびにpipisuyuは1に再初期化されます。ただし、このゲームを終了する唯一の方法は、端末を強制的に閉じることです。

from random import randint 

def run(): 
    pipisuyu = 1 
    while pipisuyu == 1: 

     secim = input("Taas kagit....") 
     AI = randint(0, 2) 
     if secim == "Tas" and AI == 0: 
      print ("Rakibiniz de Tas secti, berabere!") 


     elif secim == "Tas" and AI == 1: 
      print ("Rakibiniz kagit secmisti. Kaybettin!") 
      pipisuyu -= 1 
     elif secim == "Tas" and AI == 2: 
      print ("Rakibiniz makas secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Kagit" and AI == 0: 
      print ("Rakibiniz tas secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Kagit" and AI == 1: 
      print ("Rakibiniz de kagit secmisti. Berabere!") 
     elif secim == "Kagit" and AI == 2: 
      print ("Rakibiniz makas secmisti. Kaybettiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 0: 
      print ("Rakibiniz tas secmisti. Kaybettiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 1: 
      print ("Rakibiniz kagit secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 2: 
      print ("Rakibiniz de makas secmisti. Berabere!") 

     if pipisuyu == 0: 
      anan = input("Tekrar oynamak isterseniz ""tekrar"" yaziniz.") 
      if anan == "tekrar": 
       run() 
run() 
+0

再帰的にゲーム関数を呼び出すことは良い考えではありません。 – tzaman

+1

これは彼の質問に答えませんか? – APorter1031

+0

それ以上のことはできますか? – Pigstar

1

申し訳ありませんが、私は何Tekrar oynamak isterseniz ""tekrar"" yaziniz意味理解していないが、あなたが、そのような何か1つの以上whileループを必要とするようだ:あなたはあなたが実証されていることのPythonの機能だけを使用して

anan = "tekrar" 
while anan == "tekrar": 
    pipisuyu = 1 
    while pipisuyu == 1: 
     ... 
    anan = input("Tekrar oynamak isterseniz ""tekrar"" yaziniz.") 
+0

つまり、 「もう一度再生したい場合は、もう一度入力してください。」 "again"入力を入力すると、whileループを再開する必要があります。あなたの答えをありがとう! – Pigstar

+0

)あなたは大歓迎です – Vlad

0

を知っている、あなたはあなたのためにリセットするループ中に別のゲームをラップすることができます。これと同じように:

from random import randint 

pipisuyu = 1 
while True: 
    while pipisuyu == 1: 

     secim = input("Taas kagit....") 
     AI = randint(0, 2) 
     if secim == "Tas" and AI == 0: 
      print ("Rakibiniz de Tas secti, berabere!") 
     elif secim == "Tas" and AI == 1: 
      print ("Rakibiniz kagit secmisti. Kaybettin!") 
      pipisuyu -= 1 
     elif secim == "Tas" and AI == 2: 
      print ("Rakibiniz makas secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Kagit" and AI == 0: 
      print ("Rakibiniz tas secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Kagit" and AI == 1: 
      print ("Rakibiniz de kagit secmisti. Berabere!") 
     elif secim == "Kagit" and AI == 2: 
      print ("Rakibiniz makas secmisti. Kaybettiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 0: 
      print ("Rakibiniz tas secmisti. Kaybettiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 1: 
      print ("Rakibiniz kagit secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 2: 
      print ("Rakibiniz de makas secmisti. Berabere!") 
    pipisuyu = 1 

しかし、わずかに良いことを、私たちは関数の中でゲームロジックを包むし、そのへの呼び出しになるだろう:

from random import randint 

def playGame() 
    while pipisuyu == 1: 

     secim = input("Taas kagit....") 
     AI = randint(0, 2) 
     if secim == "Tas" and AI == 0: 
      print ("Rakibiniz de Tas secti, berabere!") 
     elif secim == "Tas" and AI == 1: 
      print ("Rakibiniz kagit secmisti. Kaybettin!") 
      pipisuyu -= 1 
     elif secim == "Tas" and AI == 2: 
      print ("Rakibiniz makas secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Kagit" and AI == 0: 
      print ("Rakibiniz tas secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Kagit" and AI == 1: 
      print ("Rakibiniz de kagit secmisti. Berabere!") 
     elif secim == "Kagit" and AI == 2: 
      print ("Rakibiniz makas secmisti. Kaybettiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 0: 
      print ("Rakibiniz tas secmisti. Kaybettiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 1: 
      print ("Rakibiniz kagit secmisti. Kazandiniz!") 
      pipisuyu -= 1 
     elif secim == "Makas" and AI == 2: 
      print ("Rakibiniz de makas secmisti. Berabere!") 

while True: 
    playGame() 
関連する問題