数字推盘游戏(n-puzzle)是一种智力游戏,常见的类型有十五数字推盘游戏和八数字推盘游戏等。十五数字推盘游戏的板上会有十五个方块和一个大小相当于一个方块的空位(供方块移动之用),当15个数字依次排序并且最后一个格子为空位即代表挑战成功。
本文使用 PyQt5 进行设计与实现,PyQt5 是该程序的一个呈现方式,最重要的是算法,学会了算法,完全可以使用 PyGame 或者 Tkinter 实现。
PyQt5安装:pip install PyQt5
本文使用环境:
- 系统:Windows 10 64位
- Python版本:3.6
1、布局设计
做一个简版的数字华容道,布局设计如图所示:
简版数字华容道布局
- 图中灰色的部分使用 QWidget 作为整个游戏的载体;
- 黄色部分使用 QGridLayout 作为数字方块的布局;
- 红色部分使用 QLabel 作为数字方块。