游戏2048(续)



游戏2048(续)


上次基本上把一个2048小游戏通过命令行窗口实现了,后续想把这个游戏做成一个完整的小程序。去了解了一些关于C++做图形界面的工具,比较主流的是Qt,专门用于桌面应用程序的开发框架,一眼就看中了它可以直接拖动各种控件的功能,不用去通过代码去设置太多的细节,能省下不少的时间。然而在做的的过程中还是的踩了很多的坑,花了挺长的时间,具体如何实现必定也不是一下子能讲完的。虽然说最核心的代码我们在之前已经实现了,但如何把代码和框架匹配起来在我们初次接触Qt的时候也是比较困难的。这里稍微讲一下踩过的坑。


一、框架的安装(windows下)


首先附上链接:https://download.qt.io/archive/qt/5.1/5.1.0/,打开之后可以看到很多选项,我这里选择的是5.1版本的,选择红色框里带minggw编译器的离线版本,之前下载的其它版本无编译器的导致我到处去找编译器也没能解决问题,最后重新下载安装。

游戏2048(续)


二、Qt的使用说明文档


虽然说官方给出了相关操作的使用文档,但不配合具体的实例来看真的很难理解,需要自己一步步测试才能知道某一步具体有什么作用。时间紧张,需要用到的控件也不多,就直接看具体那些已经完成的小程序的代码,配合文档一起使用。

建立好项目后,QT Creator会帮我们分配好文件。

游戏2048(续)
游戏2048(续)


先不管其它文件有什么作用,使用.ui界面文件先把想要的图形界面组装起来,点击.ui文件后会出现设计界面,可以直接拖动控件去我们想要的位置,具体的大小,颜色,位置等也可以直接在这里设置。真的非常方便。

游戏2048(续)


三、代码实现


16个lineEdit和5个pushButton,文本编辑控件用于显示数字,按钮控件用于被点击后实现相应功能,把这些控件调整到想要的位置上去。

之后,只需要把按钮的功能和文本框应该实现的内容匹配上就好。说的简单,实际上这一步花了非常多的时间。

具体如何实现拿开始按钮举例,只要会用一个,其它的控件基本没有太大的问题。Start按钮应该实现的功能是开始游戏,随机在4*4的格子里生成2个2或4的数字,并在文本编辑器中显示出来。这里不说太多关于QT信号和槽的东西,大致意思是按钮被点击时发送消息到文本框,文本框根据接收的信息做出相应的动作,有兴趣自己可以私下了解。这里直接鼠标右键点击start按钮,在多个选项里点击转到槽,后选择clicked()动作。

游戏2048(续)


会直接在相应的文件里生成框架代码,我们直接在它自动生成的框架里写相应的代码就行。


游戏2048(续)


把之前写好的在数组里随机生成数字的函数直接复制过来,当然,数组什么的同样要复制来。需要我们把数组中的数字在16个文本框中显示出来,这一步后续也会用到,把它作为一个函数num_show()独立出来。这一步不熟悉控件的使用就比较困难。纯数字是没有办法直接显示在文本框中的,需要转换成QT中的Qstring字符串,通过QString中的number()方法直接转换。然后使用->获取ui框架中的具体文本框,通过setText()去设置文本框具体的数字。


游戏2048(续)


写完后直接在框架中调用:

游戏2048(续)


运行成功后点击start会出现,如下图所示的小程序。


游戏2048(续)


剩下的四个按钮基本上是差不多的操作,把向上,向上相加的操作整合到向上按钮中,再把数组中的数据显示在文本框中。


游戏2048(续)


感觉还有很多细节的地方没有讲到,但时间有限,先这样了,之后有机会再说吧。代码即使放出来配置不一样的话也是会出现问题的,这里就不再放上来了。


零基础程序语言入门班

零基础程序语言入门班详情介绍


学员要求

对编程有兴趣,零基础的孩子。


上课时间

每周日下午2-5点


上课地点

福田区百花新天地3楼


师资介绍

何老师,计算机专业硕士保送生,现役ACM-ICPC队员,今年获得ICPC银川站金牌,CCPC银牌,EC铜牌以及邀请赛金牌。何老师不仅参赛成绩斐然,在教学上也有丰富经验,曾担任2019年CSP-S提高组集训班老师,以及数据结构专题班老师,教学细致耐心。


课表详情:

游戏2048(续)



详情可扫描二维码联系郑老师咨询了解

游戏2048(续)

毕莘教育咨询(深圳)有限公司围绕信息学竞赛普及组、提高组、省赛、国赛进行培训,同时提供与信息学相关的高校自主招生政策咨询。教研团队由国内顶校师资构成,深圳本地教学团队由来自清华、北大等顶尖名校的硕士、博士研究生及NOI、ACM- ICPC退役选手组成。自成立已开展多次培训,服务学生数百人次。

原创文章,作者:深圳信息学_中小学编程_编程培训_信息学竞赛_毕莘教育咨询(深圳)有限公司,如若转载,请注明出处:深圳信息学_中小学编程_编程培训_信息学竞赛_毕莘教育咨询(深圳)有限公司

联系我们

教务老师:余老师
联系电话(微信同号):14774755240
在线咨询:点击QQ在线咨询

QR code