我是python的初学者,设计了一个“计算彩球游戏”。我现在一直在想,在一轮比赛结束后重新开始比赛的最佳方式
目前: 当你们点击开始游戏时,它会填充25个随机的彩色球,然后给用户10秒的时间来计算红色和绿色的球。它以消息框的形式显示最终答案。一旦我关闭消息框,球就会留在屏幕上,然后当我点击开始游戏时,又有25个球堆积在屏幕上
我想要的是: 如何重置游戏,以便当我完成一轮并点击开始游戏时,它清除现有游戏并重新启动
我的代码
from tkinter import *
import random
import time
#from tkinter import ttk
from tkinter import messagebox
#creating a list of colors:
colors=["blue","red","yellow","green","red","pink","red","black","green","cyan"]
#creating global variables and inititializing:
global i
i=0
global redcount
redcount=0
global greencount
greencount=0
global canvas
def startgame():
global canvas
x=startclick()
if x==1:
time.sleep(5)
messagebox.showinfo("Answer"," number of red balls "+str(redcount)+
" and number of green balls is "+str(greencount))
#==============================================
def startclick():
global i
global canvas
global redcount
global greencount
for i in range(1,26):
m=random.randint(0,10)
if m == 1 or m ==4 or m==6:
redcount=redcount+1
if m == 3 or m==8:
greencount=greencount+1
try:
a=random.randint(50,250)
b=random.randint(50,350)
canvas.create_oval(a,b,a+50,b+50,outline="white",fill=colors[m],width=1)
canvas.update()
except:
print()
return(1)
#===============================================
#===============================================
root=Tk()
root.title("Count The Colors")
root.geometry("800x800+0+0") #dimension and position of main frame
#creating canvas of the game
canvas = Canvas(width=600,height=500, bg = "#d2b48c")
canvas.place(x=20, y=20)
w=Label(root,text="Can you count the number of red and green balls?",bg="black",fg="yellow")
w.place(x=30,y=500)
y=Label(root, text="You have 10 seconds to answer...press start to play",
bg="white", fg="black")
y.place(x=20,y=550)
b=Button(root,text = "Start", bg="#fd5f00", width=20, height=1,
font=("Times",12,"bold"), fg="brown", command = startgame)
b.place(x=20, y=600)
root.mainloop()
感谢您在这方面的帮助
首先,您没有遵循编程约定,但无论如何,每次调用startclick()函数时都可以清除画布。只需添加canvas.delete(“全部”)即可删除先前创建的椭圆
相关问题 更多 >
编程相关推荐