如何开始"而#34;返回False后再次循环?

时间:2017-07-14 13:35:33

标签: python loops while-loop

所以,我刚刚完成了Python的基础知识,并希望制作一个小型的Rock,Paper,Scissors游戏来练习我的知识。

现在,这是我的代码到目前为止;

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循环中,我将不胜感激。

3 个答案:

答案 0 :(得分:1)

将游戏放入函数中,当pipisuyu为0时,再次调用run函数。每次运行被称为pipisuyu将重新初始化为1.但要小心,退出此游戏的唯一方法是强制关闭您的终端。

display: table-cell;
vertical-align: middle;
padding: 10px;

答案 1 :(得分:1)

抱歉,我不明白Tekrar oynamak isterseniz ""tekrar"" yaziniz的含义,但似乎还需要一个while循环,就像这样:

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

答案 2 :(得分:0)

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

import Tkinter as tk
from Tkinter import *
from ScrolledText import *
from code import InteractiveInterpreter
interpreter = InteractiveInterpreter()

def go(event):
    print(interpreter.runcode(textPad.get('1.0', END+'-1c')))

root = tk.Tk()
textPad = ScrolledText(root,width=100,height=100)
textPad.focus_set()
b2=tk.Button(root, text ="Run",width=34,height=3)
b2.pack()
b2.bind('<Button-1>', go)
textPad.pack()
root.mainloop()

然而,稍微好一些,我们会将游戏逻辑包含在一个函数中然后调用它:

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