Tkinter,帮助一个菜鸟了解Tk的循环

时间:2016-04-22 12:34:38

标签: python loops tkinter

我是Python 3菜鸟创建一个跳棋游戏,我有一堆功能......我的游戏循环如下:

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禁用或其他东西),同时我在控制台中输入东西来移动碎片。你能救我吗?

2 个答案:

答案 0 :(得分:0)

首先,您想如何与游戏互动?

  • 控制台中有文字吗?
  • 有按钮吗?
  • 使用键盘/鼠标事件?
""""方法用于在一段时间后刷新屏幕。 它将调用您传递参数的方法。 你不应该在其中加入无限循环。但是你必须用一个简单的条件检查游戏结束,才能显示另一个屏幕。

如果必须使用控制台条目,初学者管理GUI更新和控制台可能会有点困难。

答案 1 :(得分:0)

我不确定你的问题是什么,但是,如果你想永远运行代码(直到你停止它)。您必须像这样使用 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 否则它会是无限的,它会出错。