首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在返回False后再次启动"while“循环?

如何在返回False后再次启动"while“循环?
EN

Stack Overflow用户
提问于 2017-07-14 21:35:33
回答 3查看 102关注 0票数 0

所以,我刚刚学完了Python的基础知识,并想做一个小的石头,布,剪刀游戏来练习我的知识。

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

代码语言:javascript
复制
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循环。一开始我试过这个;

代码语言:javascript
复制
if pipisuyu == 0:
    anan = input("Tekrar oynamak isterseniz ""tekrar"" yaziniz.")
    if anan == "tekrar":
        pipisuyu += 1

但是它不起作用,我相信即使现在pipisuyu等于1,而循环已经完成,不再起作用。(?)

因此,如果有人能告诉我,在输了或赢了游戏后,我如何再次回到while循环,我将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2017-07-14 21:39:14

将游戏放入一个函数中,当pipisuyu为0时,再次调用run函数。每次运行都会被重新初始化为1。不过要小心,退出这个游戏的唯一方法就是强制关闭你的终端。

代码语言:javascript
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2017-07-14 21:41:31

对不起,我不明白Tekrar oynamak isterseniz ""tekrar"" yaziniz是什么意思,但是看起来你还需要一个while循环,就像这样:

代码语言:javascript
复制
anan = "tekrar"
while anan == "tekrar":
    pipisuyu = 1
    while pipisuyu == 1:
        ...
    anan = input("Tekrar oynamak isterseniz ""tekrar"" yaziniz.")
票数 1
EN

Stack Overflow用户

发布于 2017-07-14 21:45:04

仅使用您已经演示过的Python的特性,您就可以将游戏包装在另一个while循环中,该循环将为您执行重置。如下所示:

代码语言:javascript
复制
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

然而,为了更好一点,我们将游戏逻辑封装在一个函数中,然后调用该函数:

代码语言:javascript
复制
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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45104397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档