Python Tkinter,帮助noob理解Tk';s环
我是Python3Noob,正在创建一个跳棋游戏,我有很多函数。。。我的游戏循环如下:Python Tkinter,帮助noob理解Tk';s环,python,loops,tkinter,Python,Loops,Tkinter,我是Python3Noob,正在创建一个跳棋游戏,我有很多函数。。。我的游戏循环如下: while EndGame==0: PrintBoard() PrintBoardGui() print("################","\n","Player 1","\n","################","\n") Player=1 PlayerSelectPiece() MovePiece() PrintBoard() Pr
while EndGame==0:
PrintBoard()
PrintBoardGui()
print("################","\n","Player 1","\n","################","\n")
Player=1
PlayerSelectPiece()
MovePiece()
PrintBoard()
PrintBoardGui()
print("################","\n","Player 2","\n","################","\n")
Player=2
if NbrPlayer==2:
PlayerSelectPiece()
else:
AiSelectPiece()
MovePiece()
PrintBoardGui(),我在每次转弯时运行它,创建一个Tkinter窗口,并在Tkinter框架中的新画布上绘制电路板。之后,我必须关闭窗口,以便程序继续。 我知道这是次优解决方案。
我环顾四周试图理解Tkinter的循环,并阅读了一些关于after()函数的内容,但我真的不知道如何在代码中实现它。
最后,我希望我的Tkinter窗口保持打开状态(mabye禁用或其他),同时在控制台中输入内容以移动碎片。你能帮我吗?首先,你想如何与游戏互动
- 控制台中有文本吗
- 有纽扣吗
- 使用键盘/鼠标事件
如果您必须使用控制台条目,对于初学者来说,管理GUI更新和控制台可能有点困难。首先,您希望如何与游戏交互
- 控制台中有文本吗
- 有纽扣吗
- 使用键盘/鼠标事件
如果您必须使用控制台条目,对于初学者来说,管理GUI更新和控制台可能有点困难。我不确定您的问题是什么,但是,如果您想永远运行代码(直到您停止它)。您必须像这样使用
while
循环:
while "thing" == True:
PrintBoard()
PrintBoardGui()
print("################","\n","Player 1","\n","################","\n")
Player=1
PlayerSelectPiece()
MovePiece()
PrintBoard()
PrintBoardGui()
print("################","\n","Player 2","\n","################","\n")
Player=2
if NbrPlayer==2:
PlayerSelectPiece()
else:
AiSelectPiece()
MovePiece()
thing = False
最后你把东西改成False,否则它将是无限的,它会出错。我不确定你的问题是什么,但是,如果你想永远运行代码(直到你停止它)。您必须像这样使用
while
循环:
while "thing" == True:
PrintBoard()
PrintBoardGui()
print("################","\n","Player 1","\n","################","\n")
Player=1
PlayerSelectPiece()
MovePiece()
PrintBoard()
PrintBoardGui()
print("################","\n","Player 2","\n","################","\n")
Player=2
if NbrPlayer==2:
PlayerSelectPiece()
else:
AiSelectPiece()
MovePiece()
thing = False
最后,您将东西更改为
False
,否则它将是无限的,并且会出错。我使用控制台与游戏交互,用户输入要移动的所需棋子的行,然后输入所需棋子的列。我对Tkinter不太在行我有个主意,把纽扣打包而不是“仅仅”在画布上绘制电路板,这样用户就可以直接在Tkinter窗口中选择工件。但我发现这相当困难,当时我正试图显示棋盘的画布,而不是破坏Tkinter窗口以在控制台中输入,而是让窗口保持打开状态,以便用户在控制台中输入时可以看到棋盘。您可以使用画布方法来查找玩家单击的棋子或棋盘。这比冻结gui或使用其他线程获取控制台条目要好。我正在考虑after方法。如果拆分窗口创建和绘图方法,则不必使用after方法,也不必销毁窗口,因为您正在等待控制台获得用户输入。用户输入后,可以使用绘图方法刷新gui。你只需要更好地分割你的程序功能:窗口创建、gui更新、获取用户输入和游戏结束,至少我使用控制台与游戏交互,用户输入所需片段的行,然后输入要移动的列。我对Tkinter不太在行我有个主意,把纽扣打包而不是“仅仅”在画布上绘制电路板,这样用户就可以直接在Tkinter窗口中选择工件。但我发现这相当困难,当时我正试图显示棋盘的画布,而不是破坏Tkinter窗口以在控制台中输入,而是让窗口保持打开状态,以便用户在控制台中输入时可以看到棋盘。您可以使用画布方法来查找玩家单击的棋子或棋盘。这比冻结gui或使用其他线程获取控制台条目要好。我正在考虑after方法。如果拆分窗口创建和绘图方法,则不必使用after方法,也不必销毁窗口,因为您正在等待控制台获得用户输入。用户输入后,可以使用绘图方法刷新gui。您只需要更好地分割程序功能:窗口创建、gui更新、获取用户输入和游戏结束,至少是这样