基于QT下的扫雷游戏设计
基于QT下的扫雷游戏设计[20200406125103]
摘要
本论文介绍了在linux系统下使用Qt Creator开发的扫雷游戏的实现过程,本设计使用Qt Creator作为开发平台,设计功能类似于Windows操作系统下的扫雷游戏。
该论文首先介绍了设计所用到的开发工具以及开发环境,整体的设计思路及整个游戏的详细步骤(流程规划),然后介绍了雷区的布置及以及游戏中主要模块的实现方法,为了提高游戏的可玩性,特别设计第一次鼠标点击时出现的不可能是地雷。重点介绍了游戏过程中各模块的解决过程。其中又以鼠标事件和扩散雷区这两方面尤为重要。鼠标事件是通过点击鼠标的操作(左击还是右击),进而实现不同的功能操作,而扩散雷区利用“递归”的思想当鼠标点击到空白的区域时,游戏会自动扩散直到遇到地雷位置。
*查看完整论文请 +Q: 3 5 1 9 1 6 0 7 2
关键字:扫雷C++QtCreator事件
目 录
1 绪论 1
1.1课题背景及意义 1
1.1.1.扫雷游戏研究的背景 1
1.1.2.扫雷游戏研究的现状 1
1.1.3.扫雷游戏未来的趋势 1
2 开发环境及相关技术的介绍 3
2.1 开发环境 3
2.2 开发语言的选用 3
2.2.1 C++简介 3
2.2.2 C++与C的关系 3
2.2.3 C++优点 4
2.3开发工具的选用及介绍 4
2.3.1 Qt Creator简介 4
2.3.2 Qt Creator功能和优势 5
3 扫雷游戏总体分析与设计 6
3.1 功能分析 6
3.2流程规划 6
3.3画面设计 7
4 游戏的详细设计 10
4.1 游戏初始化 10
4.2 雷区的设置 11
4.2.1 雷区的生成 11
4.2.2 雷区图片的放置 13
4.3 游戏中主要模块的介绍 14
4.3.1 鼠标事件 14
4.3.2 游戏难度的选择 18
4.3.3 游戏结果的判断 19
5 游戏测试与运行 21
5.1 游戏的测试 21
5.2 游戏的运行 21
结束语 25
参考文献 26
致 谢 27
附录 28
1 绪论
1.1课题背景及意义
1.1.1.扫雷游戏研究的背景
扫雷最初是一款名为“方块”的游戏。 不久之后,在“方块”游戏被改写成了游戏“Rlogic”。在“Rlogic”游戏里面,玩家的任务是作为美国海军陆战队队员,为指挥中心探出一条没有地雷的安全路线,如果路全被地雷堵死就算输。两年后,游戏“地雷”在“Rlogic”的基础上改编成功,由此奠定了现代扫雷游戏的雏形。
1981年,微软公司的 罗伯特?杜尔和卡特?约翰逊 两位工程师在Windows 3.1系统上放置了该游戏,扫雷游戏才得以在全世界被推广开来。这款游戏的玩法是在一个9*9(初级),16*16(中级),16*30(高级),或自定义大小的雷块中随机布置一定量的地雷(初级为10个,中级为40个,高级为99个)。由玩家随机点击方块,游戏的最终目的是找到所有的地雷。游戏结束判断的标志是玩家翻开的雷块是地雷[1]。
1.1.2.扫雷游戏研究的现状
随着计算机网络的发展,人们生活水平的提高,电脑游戏已经与我们的生活息息相关,人们在忙碌了一天之后,通过游戏得以放松。扫雷游戏是Windows操作系统自带的游戏,在过去的几年里,Windows操作系统经历了多次升级(更新换代),变得功能更加强大,内部结构更加复杂,但是每次装机都必备安装这款小游戏,可见扫雷游戏有着其独特的地方并且受到了很多人的喜爱。扫雷作为一种小游戏也在不断的更新中,以不同的面貌,全新的方式呈现给喜爱它的人们[2]。
1.1.3.扫雷游戏未来的趋势
扫雷游戏正在被大量游戏爱好者所享受,为此扫雷游戏现在正被不断的改进和优化,国内外对扫雷游戏研究已经逐步深化,但扫雷界面单一,不够美观,已经是大家公认的。未来的扫雷游戏必然更加完美,其界面一定更加美观,3D界面无疑是很好的选择。同时在手游日益发展的今天,能不能加大往手游方面研究的力度,能不能添加新的内容,这些都是值得思考的。
扫雷游戏不仅仅是作为一种游戏那么简单,在游戏的过程中也是可以锻炼你的动手能力,想象能力,推理能力,逻辑思维能力等等[3]。
2 开发环境及相关技术的介绍
2.1 开发环境
操作系统:Linux
程序语言:C++
开发平台:Qt Creator
2.2 开发语言的选用
2.2.1 C++简介
C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。
C++是里克 Mascitti在1983年建议的,并且在1983年12月第一次使用。在很早以前,还在研究中的语言被称之为“new C”,之后的是“C with Classes”。在计算机领域之中,仍然被称为是语言的上层结构。它最终以C语言中的“++”操作符得名。而且在共同的命名约定中,使用“+”以表示增强的程序[4]。
2.2.2 C++与C的关系
C语言是C++的子集,C++和C语言在很多地方是相似的。
C语言和C++它们使用了完全不同的设计思想:是面向过程的设计还是面向对象的设计,面向过程的设计就是分析出解决问题所需要的步骤,然后把这些步骤依次实现功能。而面向对象的设计是通过功能来划分问题,而不是通过步骤,把构成问题的事物分解成各个对象[5]。
C++对C的“增强”,表现在六个方面:
(1) 类型检查更为严格。
(2) 增加了面向对象的机制。
(3) 增加了泛型编程的机制(Template)。
(4) 增加了异常处理。
(5) 增加了运算符重载。
(6) 增加了标准模板库(STL)[6]。
2.2.3 C++优点
C++实现了面向对象程序的设计,在很多高级语言中,处理运行速度是最快的,很多游戏软件,他们的系统都是用C++编写的。
C++语言非常灵活,功能非常强大,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比 ,C语言具有可以直接访问物理地址的优点,与汇编语言相比又具有良好的可读性的可移植性。
总得来说,它包含了C语言的简洁有效的方法、高效的接近汇编语言等特点,在C的基础上进行了扩展,因此C++比C更安全,C++的编译系统可以检查出更多的错误类型。另外,由于C语言的广泛使用,因而极大的促进了C++的普及和推广[7]。
出于保证语言的简洁和运行高效等方面的考虑,C++的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。
C++引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括Boost、Qt、MFC、OWL、wxWidgets、WTL就是使用的C++[8]。
2.3开发工具的选用及介绍
2.3.1 Qt Creator简介
Qt软件是跨平台软件开发的C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可以开发非GUI程序(比如控制台工具和服务器)。Qt软件是面向对象的框架,生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏通过使用特殊的代码,更容易延伸,能够通过组件来编程。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增了WinRT、美化者(Beautifier)等插件,废弃了无Python接口的GDB(程序调试工具)调试支持,集成了基于Clang的C/C++代码模块,并通过调整对Android系统进行了支持,至此实现了全面支持WP、Android、iOS[9]。
摘要
本论文介绍了在linux系统下使用Qt Creator开发的扫雷游戏的实现过程,本设计使用Qt Creator作为开发平台,设计功能类似于Windows操作系统下的扫雷游戏。
该论文首先介绍了设计所用到的开发工具以及开发环境,整体的设计思路及整个游戏的详细步骤(流程规划),然后介绍了雷区的布置及以及游戏中主要模块的实现方法,为了提高游戏的可玩性,特别设计第一次鼠标点击时出现的不可能是地雷。重点介绍了游戏过程中各模块的解决过程。其中又以鼠标事件和扩散雷区这两方面尤为重要。鼠标事件是通过点击鼠标的操作(左击还是右击),进而实现不同的功能操作,而扩散雷区利用“递归”的思想当鼠标点击到空白的区域时,游戏会自动扩散直到遇到地雷位置。
*查看完整论文请 +Q: 3 5 1 9 1 6 0 7 2
关键字:扫雷C++QtCreator事件
目 录
1 绪论 1
1.1课题背景及意义 1
1.1.1.扫雷游戏研究的背景 1
1.1.2.扫雷游戏研究的现状 1
1.1.3.扫雷游戏未来的趋势 1
2 开发环境及相关技术的介绍 3
2.1 开发环境 3
2.2 开发语言的选用 3
2.2.1 C++简介 3
2.2.2 C++与C的关系 3
2.2.3 C++优点 4
2.3开发工具的选用及介绍 4
2.3.1 Qt Creator简介 4
2.3.2 Qt Creator功能和优势 5
3 扫雷游戏总体分析与设计 6
3.1 功能分析 6
3.2流程规划 6
3.3画面设计 7
4 游戏的详细设计 10
4.1 游戏初始化 10
4.2 雷区的设置 11
4.2.1 雷区的生成 11
4.2.2 雷区图片的放置 13
4.3 游戏中主要模块的介绍 14
4.3.1 鼠标事件 14
4.3.2 游戏难度的选择 18
4.3.3 游戏结果的判断 19
5 游戏测试与运行 21
5.1 游戏的测试 21
5.2 游戏的运行 21
结束语 25
参考文献 26
致 谢 27
附录 28
1 绪论
1.1课题背景及意义
1.1.1.扫雷游戏研究的背景
扫雷最初是一款名为“方块”的游戏。 不久之后,在“方块”游戏被改写成了游戏“Rlogic”。在“Rlogic”游戏里面,玩家的任务是作为美国海军陆战队队员,为指挥中心探出一条没有地雷的安全路线,如果路全被地雷堵死就算输。两年后,游戏“地雷”在“Rlogic”的基础上改编成功,由此奠定了现代扫雷游戏的雏形。
1981年,微软公司的 罗伯特?杜尔和卡特?约翰逊 两位工程师在Windows 3.1系统上放置了该游戏,扫雷游戏才得以在全世界被推广开来。这款游戏的玩法是在一个9*9(初级),16*16(中级),16*30(高级),或自定义大小的雷块中随机布置一定量的地雷(初级为10个,中级为40个,高级为99个)。由玩家随机点击方块,游戏的最终目的是找到所有的地雷。游戏结束判断的标志是玩家翻开的雷块是地雷[1]。
1.1.2.扫雷游戏研究的现状
随着计算机网络的发展,人们生活水平的提高,电脑游戏已经与我们的生活息息相关,人们在忙碌了一天之后,通过游戏得以放松。扫雷游戏是Windows操作系统自带的游戏,在过去的几年里,Windows操作系统经历了多次升级(更新换代),变得功能更加强大,内部结构更加复杂,但是每次装机都必备安装这款小游戏,可见扫雷游戏有着其独特的地方并且受到了很多人的喜爱。扫雷作为一种小游戏也在不断的更新中,以不同的面貌,全新的方式呈现给喜爱它的人们[2]。
1.1.3.扫雷游戏未来的趋势
扫雷游戏正在被大量游戏爱好者所享受,为此扫雷游戏现在正被不断的改进和优化,国内外对扫雷游戏研究已经逐步深化,但扫雷界面单一,不够美观,已经是大家公认的。未来的扫雷游戏必然更加完美,其界面一定更加美观,3D界面无疑是很好的选择。同时在手游日益发展的今天,能不能加大往手游方面研究的力度,能不能添加新的内容,这些都是值得思考的。
扫雷游戏不仅仅是作为一种游戏那么简单,在游戏的过程中也是可以锻炼你的动手能力,想象能力,推理能力,逻辑思维能力等等[3]。
2 开发环境及相关技术的介绍
2.1 开发环境
操作系统:Linux
程序语言:C++
开发平台:Qt Creator
2.2 开发语言的选用
2.2.1 C++简介
C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。
C++是里克 Mascitti在1983年建议的,并且在1983年12月第一次使用。在很早以前,还在研究中的语言被称之为“new C”,之后的是“C with Classes”。在计算机领域之中,仍然被称为是语言的上层结构。它最终以C语言中的“++”操作符得名。而且在共同的命名约定中,使用“+”以表示增强的程序[4]。
2.2.2 C++与C的关系
C语言是C++的子集,C++和C语言在很多地方是相似的。
C语言和C++它们使用了完全不同的设计思想:是面向过程的设计还是面向对象的设计,面向过程的设计就是分析出解决问题所需要的步骤,然后把这些步骤依次实现功能。而面向对象的设计是通过功能来划分问题,而不是通过步骤,把构成问题的事物分解成各个对象[5]。
C++对C的“增强”,表现在六个方面:
(1) 类型检查更为严格。
(2) 增加了面向对象的机制。
(3) 增加了泛型编程的机制(Template)。
(4) 增加了异常处理。
(5) 增加了运算符重载。
(6) 增加了标准模板库(STL)[6]。
2.2.3 C++优点
C++实现了面向对象程序的设计,在很多高级语言中,处理运行速度是最快的,很多游戏软件,他们的系统都是用C++编写的。
C++语言非常灵活,功能非常强大,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比 ,C语言具有可以直接访问物理地址的优点,与汇编语言相比又具有良好的可读性的可移植性。
总得来说,它包含了C语言的简洁有效的方法、高效的接近汇编语言等特点,在C的基础上进行了扩展,因此C++比C更安全,C++的编译系统可以检查出更多的错误类型。另外,由于C语言的广泛使用,因而极大的促进了C++的普及和推广[7]。
出于保证语言的简洁和运行高效等方面的考虑,C++的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。
C++引入了面向对象的概念,使得开发人机交互类型的应用程序更为简单、快捷。很多优秀的程序框架包括Boost、Qt、MFC、OWL、wxWidgets、WTL就是使用的C++[8]。
2.3开发工具的选用及介绍
2.3.1 Qt Creator简介
Qt软件是跨平台软件开发的C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可以开发非GUI程序(比如控制台工具和服务器)。Qt软件是面向对象的框架,生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏通过使用特殊的代码,更容易延伸,能够通过组件来编程。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增了WinRT、美化者(Beautifier)等插件,废弃了无Python接口的GDB(程序调试工具)调试支持,集成了基于Clang的C/C++代码模块,并通过调整对Android系统进行了支持,至此实现了全面支持WP、Android、iOS[9]。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/gdxx/372.html