2017-07-14 53 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,while循环已经用它做,不会再工作。(?)

所以,我将不胜感激如果有人能告诉我,在输掉或赢得比赛之后,我怎么能再次回到while循环。

+0

另一个while循环! – wheaties

+2

你以前不能回到某些指令。你*可以做的是重复一些事情。你如何重复一些事情?使用循环。因此,使用循环重复游戏,直到没有人想再玩一次。 – poke

+0

把它放在一个函数中?这是什么语言? “pipisuyu”? –

回答

1

将游戏放入函数中,当pipisuyu为0时,再次调用run函数。每次运行被称为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

你可以再详细一点吗,tzaman? – Pigstar

1

对不起,我不明白是什么Tekrar oynamak isterseniz ""tekrar"" yaziniz手段,但似乎你需要一个更while循环,这样的事情:

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

这意味着; “如果你想再次玩,请再次输入'。” 因此,当我输入“再次”输入时,while循环需要重新开始。谢谢您的回答! – Pigstar

+0

我看到了)不客气 – Vlad

0

使用Python的只是功能,你已经证明了你知道,你可以将游戏包装在另一个while循环中,它会为你重置。像这样:

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()