【发布时间】:2021-10-13 12:59:47
【问题描述】:
我制作了一个井字游戏,基本上每当玩家获胜时,脚本都会等待五秒钟并自行退出。
我在谷歌上搜索它说我可以使用time.sleep()。
但问题是我不想使用time.sleep()。
原因是因为它使玩家的最后一步不可见。
有人对其他库或代码做同样的事情有什么建议吗?
这是代码,但如果你不明白,我不怪你。
from tkinter import *
import time
root = Tk()
howmanygone = 0
winningcondition1x = False
winningcondition2x = False
winningcondition3x = False
winningcondition4x = False
winningcondition5x = False
winningcondition6x = False
winningcondition7x = False
winningcondition8x = False
winningcondition9x = False
winningcondition1o = False
winningcondition2o = False
winningcondition3o = False
winningcondition4o = False
winningcondition5o = False
winningcondition6o = False
winningcondition7o = False
winningcondition8o = False
winningcondition9o = False
def destroy() :
time.sleep(5)
root.quit()
turn = ["x","o","x","o","x","o","x","o","x"]
indexcounter = 0
def one() :
global winningcondition1x
global winningcondition1o
global turn
global indexcounter
global howmanygone
button1.config(text=turn[indexcounter] , state = "disabled")
howmanygone += 1
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition1x = True
else :
winningcondition1o = True
indexcounter += 1
winningcondition1x = True
print(winningcondition1x)
if howmanygone >= 3 and winningcondition1x == True and winningcondition5x == True and winningcondition9x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1x == True and winningcondition2x == True and winningcondition3x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1x == True and winningcondition4x == True and winningcondition7x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition5o == True and winningcondition9o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition2o == True and winningcondition3o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition4o == True and winningcondition7o == True :
print("O Won")
destroy()
def two() :
global winningcondition2x
global winningcondition2o
global turn
global indexcounter
global howmanygone
button2.config(text=turn[indexcounter], state = "disabled")
howmanygone += 1
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition2x = True
else :
winningcondition2o = True
indexcounter += 1
print(winningcondition2x)
if howmanygone >= 3 and winningcondition1x == True and winningcondition2x == True and winningcondition3x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition2x == True and winningcondition5x == True and winningcondition8x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition2o == True and winningcondition3o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition2o == True and winningcondition5o == True and winningcondition8o == True :
print("O Won")
destroy()
def three() :
global winningcondition3x
global winningcondition3o
global turn
global indexcounter
global howmanygone
button3.config(text=turn[indexcounter], state = "disabled")
howmanygone += 1
winningcondition3x = True
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition3x = True
else :
winningcondition3o = True
indexcounter += 1
if howmanygone >= 3 and winningcondition3x == True and winningcondition5x == True and winningcondition7x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1x == True and winningcondition2x == True and winningcondition3x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition3x == True and winningcondition6x == True and winningcondition9x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition3o == True and winningcondition5o == True and winningcondition7o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition2o == True and winningcondition3o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition3o == True and winningcondition6o == True and winningcondition9o == True :
print("O Won")
destroy()
def four() :
global winningcondition4x
global winningcondition4o
global turn
global indexcounter
global howmanygone
button4.config(text=turn[indexcounter], state = "disabled")
howmanygone += 1
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition4x = True
else :
winningcondition4o = True
indexcounter += 1
print(winningcondition4x)
if howmanygone >= 3 and winningcondition1x == True and winningcondition4x == True and winningcondition7x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition4x == True and winningcondition5x == True and winningcondition6x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition4o == True and winningcondition7o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition4o == True and winningcondition5o == True and winningcondition6o == True :
print("O Won")
destroy()
def five() :
global winningcondition5x
global winningcondition5o
global turn
global indexcounter
global howmanygone
button5.config(text=turn[indexcounter], state = "disabled")
howmanygone += 1
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition5x = True
else :
winningcondition5o = True
indexcounter += 1
print(winningcondition5x)
if howmanygone >= 3 and winningcondition1x == True and winningcondition5x == True and winningcondition9x == True :
print("X Won")
destroy()
elif howmanygone >= 3 and winningcondition3x == True and winningcondition5x == True and winningcondition7x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition2x == True and winningcondition5x == True and winningcondition8x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition4x == True and winningcondition5x == True and winningcondition6x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition5o == True and winningcondition9o == True :
print("O Won")
destroy()
elif howmanygone >= 3 and winningcondition3o == True and winningcondition5o == True and winningcondition7o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition2o == True and winningcondition5o == True and winningcondition8o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition4o == True and winningcondition5o == True and winningcondition6o == True :
print("O Won")
destroy()
def six() :
global winningcondition6x
global winningcondition6o
global turn
global indexcounter
global howmanygone
button6.config(text=turn[indexcounter], state = "disabled")
howmanygone += 1
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition6x = True
else :
winningcondition6o = True
indexcounter += 1
print(winningcondition6x)
if howmanygone >= 3 and winningcondition3x == True and winningcondition6x == True and winningcondition9x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition4x == True and winningcondition5x == True and winningcondition6x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition3o == True and winningcondition6o == True and winningcondition9o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition4o == True and winningcondition5o == True and winningcondition6o == True :
print("O Won")
destroy()
def seven() :
global winningcondition7x
global winningcondition7o
global turn
global indexcounter
global howmanygone
button7.config(text=turn[indexcounter], state = "disabled")
indexcounter += 1
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition7x = True
else :
winningcondition7o = True
howmanygone += 1
print(winningcondition7x)
if howmanygone >= 3 and winningcondition3x == True and winningcondition5x == True and winningcondition7x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1x == True and winningcondition4x == True and winningcondition7x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition7x == True and winningcondition8x == True and winningcondition9x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition3o == True and winningcondition5o == True and winningcondition7o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition4o == True and winningcondition7o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition7o == True and winningcondition8o == True and winningcondition9o == True :
print("O Won")
destroy()
def eight() :
global winningcondition8x
global winningcondition8o
global turn
global indexcounter
global howmanygone
button8.config(text=turn[indexcounter], state = "disabled")
howmanygone += 1
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition8x = True
else :
winningcondition8o = True
indexcounter += 1
print(winningcondition8x)
if howmanygone >= 3 and winningcondition7x == True and winningcondition8x == True and winningcondition9x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition2x == True and winningcondition5x == True and winningcondition8x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition7o == True and winningcondition8o == True and winningcondition9o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition2o == True and winningcondition5o == True and winningcondition8o == True :
print("O Won")
destroy()
def nine() :
global winningcondition9x
global winningcondition9o
global turn
global indexcounter
global howmanygone
button9.config(text=turn[indexcounter], state = "disabled")
howmanygone += 1
if indexcounter == 0 or indexcounter == 2 or indexcounter == 4 or indexcounter == 6 or indexcounter == 8 :
winningcondition9x = True
else :
winningcondition9o = True
indexcounter += 1
print(winningcondition9x)
if howmanygone >= 3 and winningcondition1x == True and winningcondition5x == True and winningcondition9x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition7x == True and winningcondition8x == True and winningcondition9x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition3x == True and winningcondition6x == True and winningcondition9x == True :
print("X Won")
destroy()
if howmanygone >= 3 and winningcondition1o == True and winningcondition5o == True and winningcondition9o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition7o == True and winningcondition8o == True and winningcondition9o == True :
print("O Won")
destroy()
if howmanygone >= 3 and winningcondition3o == True and winningcondition6o == True and winningcondition9o == True :
print("O Won")
destroy()
button1 = Button(root,text=" ",command = one,padx = 15,pady = 10)
button1.grid(row = 0,column = 0)
button2 = Button(root,text=" ",command = two,padx = 15,pady = 10)
button2.grid(row = 0,column = 1)
button3 = Button(root,text=" ",command = three,padx = 15,pady = 10)
button3.grid(row = 0,column = 2)
button4 = Button(root,text=" ",command = four,padx = 15,pady = 10)
button4.grid(row = 1,column = 0)
button5 = Button(root,text=" ",command = five,padx = 15,pady = 10)
button5.grid(row = 1,column = 1)
button6 = Button(root,text=" ",command = six,padx = 15,pady = 10)
button6.grid(row = 1,column = 2)
button7 = Button(root,text=" ",command = seven,padx = 15,pady = 10)
button7.grid(row = 2,column = 0)
button8 = Button(root,text=" ",command = eight,padx = 15,pady = 10)
button8.grid(row = 2,column = 1)
button9 = Button(root,text=" ",command = nine,padx = 15,pady = 10)
button9.grid(row = 2,column = 2)
mainloop()
【问题讨论】:
-
为什么它会让玩家的最后一步不可见。请发布代码或截图,以便我们了解您尝试将 time.sleep() 放在哪里
标签: python python-3.x wait