在wxpython中建模一个国际象棋棋盘
我正在学习wxPython来制作一个国际象棋GUI,但我不完全知道它应该如何完成,以及使用哪些小部件。 我在想每个方块都带有一张照片,然后将它们放在相邻的电路板上,所以我在电路板上有64个按钮。
当我移动一块时,我将按钮放在目标方块上,原点方块将被替换为代表空方块的按钮。
这是在wxPython中做到这一点的正确方法吗? 我真的被困在这里,因为在wxPython中没有关于国际象棋GUI的例子。
啊,用wxPython创建一个国际象棋程序是我十多年前自学python程序的过程;-)祝你好运。
首先,您需要为电路板绘制网格。 这很容易。 然后你需要一个数据结构来记住所有碎片的位置。 为此我在这里使用了这个模块:http://www.alcyone.com/pyos/chess/。 接下来,您需要一个例程,让Board
在适当的位置绘制图片。
要移动棋子,您可能需要使用拖放操作。 通过这种方式,您可以制作一个方形(或在该方形上绘制的部分)可拖动。 你将需要一个例程来计算你的屏幕坐标,例如screen_to_board()
。 在放置事件中,您将使用相同的例程计算目标方块。 然后,您只需更新电路板状态(使用Board.move()
)并重新绘制屏幕。