首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅重复函数3次,然后更改Python

仅重复函数3次,然后更改Python
EN

Stack Overflow用户
提问于 2021-05-30 11:14:47
回答 1查看 41关注 0票数 0

好的,所以,我和Tkinter在学校做了这个石头,布,剪刀游戏,它运行正常,但我想增加一个可能性,游戏只运行三次。你知道,当你和一个朋友在一起时,你只玩了三局最好的。Add所以我创建了一个名为ThreeRun的函数,它运行主窗口,它应该在变量RepCall==3之后给出最终的结果。这个变量是全局的,并且连接到每次玩家玩游戏时激活的函数准备程序(使用名为go的按钮)。

嗯,这肯定不是按计划进行的,现在我已经没有想法了。这是代码。我承认这是一个令人痛苦的混乱的事实,但这是我所能做的。顺便说一句,这只是程序的重要部分。

代码语言:javascript
复制
def ThreeRun():
    global labord,labtoi,radlst,kill,ans,go,tl,var
    global ptoi, pord, RepCall
    UltimWindow()
    if RepCall==3:
        if ptoi==pord:
            showinfo(title="Conclusion",message=m1)
            LeHide(erlst2)
            MainDow()
        elif ptoi>pord:
            showinfo(title="Conclusion",message=m2)
            LeHide(erlst2)
            MainDow()
        elif ptoi<pord:
            showinfo(title="Conclusion",message=m3)
            LeHide(erlst2)
            MainDow()
    pass

def UltimWindow():
    global labord,labtoi,radlst,kill,ans,go,tl,var,imlst
    erlst1=[imglab,normlab,mod1,mod2,Quit]
    LeHide(erlst1)

    root.geometry("690x465")
    root.configure(bg='#eead0e')
    
    var=IntVar()
    
    piedra = PhotoImage(file = r"C:\Users\User\Documents\School\Prog\Projects\SpongeRock.png")
    papel = PhotoImage(file = r"C:\Users\User\Documents\School\Prog\Projects\SpongePaper.png")
    tijeras = PhotoImage(file = r"C:\Users\User\Documents\School\Prog\Projects\SpongeTijeras.png")
    karen = PhotoImage(file = r"C:\Users\User\Documents\School\Prog\Projects\SpongeKaren.png")
    calamar = PhotoImage(file = r"C:\Users\User\Documents\School\Prog\Projects\SpongeCalamar.png")

    imlst=[(0),("Roche",piedra,1),("Papier",papel,2),("Ciseaux",tijeras,3)]

    def ShowChoice():
        labtoi.configure(image=imlst[var.get()][1])
        pass
    
    def Pretender():
        global ptoi,pord,ans,RepCall,var,imlst
        RepCall+=1
        jou=var.get() 
        if jou==0:
           errbox=showerror(title="Aucun choisi!",message="Choisis entre Roche, Papier ou Ciseaux!")
        else:
            ordi=randint(1,3)
            labord.configure(image=imlst[ordi][1])
            ans.configure(bg='#5b1ab0',fg="White",font=('Tw Cen MT',10),height=3,width=20)
            if ordi == jou:
                ans.configure(text=str(imlst[ordi][0])+" annule "+str(imlst[jou][0])+"\nPoints du 
                joueur:"+str(ptoi)+"\nPoints de l' Ordi:"+str(pord))
            elif (ordi==1 and jou==3) or (ordi==2 and jou==1) or (ordi==3 and jou==2):
                pord+=1
                ans.configure(text=str(imlst[ordi][0])+" bat "+str(imlst[jou][0])+"\nPoints du 
                joueur:"+str(ptoi)+"\nPoints de l' Ordi:"+str(pord))
            else:
                ptoi+=1
                ans.configure(text=str(imlst[jou][0])+" bat "+str(imlst[ordi][0])+"\nPoints du 
                joueur:"+str(ptoi)+"\nPoints de l' Ordi:"+str(pord))       
            pass

    tl=Label(root, text = "Roche, Papier, Ciseaux!",bg='#3aaaaa',font=('Magneto',15))
    tl.grid(row=0,column=1,padx=50,pady=(15))
    labord= Label(root,text="Choix de l'Ordi", image = karen,bg='black',fg='white',font=('Tw Cen 
    MT',10),compound=TOP)
    labord.karen=karen
    labord.grid(row=2,column=2)
    labtoi= Label(root,text="Choix du Joueur", image = calamar,bg='black',fg='white',font=('Tw Cen 
    MT',10),compound=TOP)
    labtoi.calamar=calamar
    labtoi.grid(row=2,column=0)
    ans=Label(root,bg='#eead0e',height=3,width=20)
    ans.grid(row=3,column=1)

    for choix, img, val in imlst[1:]:
        rad=tk.Radiobutton(root,
                           text=choix,image=img,
                           font=('Tw Cen MT',10),bg='black',
                           fg='white',compound=TOP,
                           indicatoron = 0,
                           variable=var, 
                           command=ShowChoice,
                           value=val)
        rad.grid(row=1,column=val-1,padx=10,pady=(15,30))
        radlst.append(rad)

    go=Button(root, text="VS",bg='firebrick',fg='White',font=('Impact',30),width=5,command=Pretender)
    go.grid(row=2,column=1,pady=(15,30))
    kill=Button(root, text="Quiter",bg='#3aaaaa',font=('Magneto',10),command=FinDestination)
    kill.grid(row=4,column=1,padx=10,pady=15)
    pass

run1=MainDow()
pass

runmain=GWindow()

EN

回答 1

Stack Overflow用户

发布于 2021-06-02 18:43:55

试试这个-

turns = []

def ThreeRun():

代码语言:javascript
复制
global turns
turns.append(0)

if len(turns) == 3:
   return 'Game Over'

每次调用这个函数时,它都会检查是否已经过了3轮,如果没有,它将继续。

只需在游戏中以您的方式修改它即可

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67757363

复制
相关文章

相似问题

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