有很多种棋类游戏,例如:围棋、五子棋、象棋和国际象棋等。使用Python编写编写棋类游戏,很多人选择使用Pygame库。我个人感觉编写棋类游戏还是使用tkinter较好。Pygame库为了满足连续运动类游戏,例如赛车,为了实现动画效果,就必须每秒几十次刷新屏幕。这将极大地消耗计算机资源。而棋类游戏是通过鼠标和键盘增加、移动和删除棋子。这应采用事件驱动方式工作,即游戏程序应等待事件发生,事件发生后游戏程序用事件处理函数处理事件,即增加、移动和删除棋子。完全无必要每秒几十次刷屏。这也将极大地减少计算机CPU的负担。使用Python tkinter的Canvas组件能够很好地实现棋类游戏这些功能,界面不输于Pygame库界面。首先建立Canvas对象,在Canvas对象上填充一个棋盘图像,作为背景。然后在Canvas对象上建立棋子图像对象,利用Canvas组件中的函数,在棋盘上增加、移动和删除棋子。由于不使用Pygame库,也就减少了程序的大小。下边程序为游戏程序增加了一个棋盘背景。
import tkinter as tk
root = tk.Tk() #初始化窗口
root.title('五子棋背景') #窗口标题
#窗口宽615,高=615,窗口左上点离屏幕左边界200,离屏幕上边界距离20
root.geometry("615x615+200+20")
#设置窗口是否可变,这里宽不可变,高不可变,默认为True
root.resizable(width=False,height=False)
#创建Canvas对象
w = tk.Canvas(root, width = 615, height = 615, background = "white")
w.pack()
#围棋棋盘图像宽和高都为615像素。必须在程序所在文件夹建立文件夹pic,并把文件围棋棋盘背景.png保存到该文件夹。
#仅复制代码不能运行
p = tk.PhotoImage(file='pic/围棋棋盘背景.png')
#在Canvas对象增加背景棋盘图像对象,其中心位于Canvas对象中心
w.create_image(307,307, image=p)
root.mainloop()
程序运行效果如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210225150741410.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dlbmdfemhhb3lpbmc=,size_16,color_FFFFFF,t_70#pic_center)
|