java的俄罗斯方块游戏设计与开发(源码)【字数:17722】
摘 要随着电脑软、硬件技术的进步和因特网的广泛应用,电脑游戏发展得到了强大动力。21世纪以来,网络游戏变成游戏中的主宰。不同于单机游戏,网络游戏是指是指多名游戏玩家通过计算机网络并在虚拟环境下进行互动的游戏。并且网络游戏根据提供的形式,又被分为客户端软件游戏和网页游戏。本次设计的俄罗斯方块就以客户端软件游戏的形式进行开发,只要将开发好的项目的可执行文件分享给朋友,即可与朋友进行游戏,竞争排行。游戏主要通过方块的左、右、下移动和旋转来实现满行消除的目的,此外还附加了其他小功能,如等级排行,游戏换肤,增强了游戏的趣味性。本游戏采用MVC框架模式,用eclipse作为游戏的开发平台,使用Microsoft SQL Server 2012数据库对数据进行存储,游戏开发拟用Java语言,该语言具有安全性、健壮性、易于使用、可移植性和跨平台等优点。同时Java提供的类库简化了程序设计的过程,缩短了项目的开发的周期。
Key words: computer games; Tetris; MVC pattern; Java language 目 录
第一章 绪论 1
1.1开发背景 1
1.2开发目的和意义 1
1.3系统开发环境和工具 2
1.3.1 eclipse4.7开发工具介绍 2
1.3.2 Microsoft SQL Server2012数据库介绍 2
1.4 论文主要研究内容与组织结构 3
1.4.1 论文主要研究内容 3
1.4.2 论文组织结构 3
第二章 游戏概要设计 4
2.1游戏设计总述 4
2.2框架设计 4
2.3游戏界面设计 6
2.4游戏类库设计 6
第三章 数据库的设计 8
3.1数据库表的设计 8
3.1.1玩家表 8
3.1.2进度表 8
3.1.3朋友圈表 8
3.1.4道具表 8
3.1.5用户道具表 9
第四章 关键技术分析 10
4.1方块的数据结构与绘制 10
4.2游戏 *好棒文|www.hbsrm.com +Q: ^351916072#
边框的数据结构与绘制 11
4.3线程控制方块下落 11
4.4方块消行 11
4.5统计得分 12
4.6绘制值槽 13
4.7数据记录 13
4.8按钮模块 13
4.9保存记录 14
第五章 功能实现 15
5.1游戏主界面 15
5.2数据库记录(排行榜) 18
5.3本地记录 20
5.4按钮设计 21
5.5显示方块和当前等级 25
5.6显示模块 26
5.7相关信息 27
5.8保存分数 27
5.9方块消行 29
5.10游戏结束 29
第六章 游戏中的人工智能 31
6.1俄罗斯方块人工智能的概述 31
6.2人工智能的构想 31
6.3人工智能的相关算法 31
6.3.1A*最短路径算法 31
6.3.2算法应用 32
第七章 系统测试 37
7.1测试方法 37
7.1.1黑盒测试 37
7.1.2白盒测试 37
7.2.1按键事件的功能测试 38
7.2.2方块的堆积与消行测试 38
7.2.3按钮功能测试 39
7.2.4等级功能测试 39
7.2.5游戏结束测试 39
7.2.6游戏记录测试 40
7.3测试总结 40
第八章 总结与展望 41
8.1总结 41
8.2展望 41
结束语 42
致 谢 43
参考文献 44
第一章 绪论
1.1开发背景
电脑游戏是指在计算机上运行的具有娱乐功能的电脑软件,电脑游戏能为游戏用户提供了一个虚拟空间,带给用户很多新的体验。1962年,游戏发明人斯蒂夫.拉塞尔在美国DEC公司生产的《宇宙战争》是当时非常有名的电脑游戏。1970年,随着苹果的问世,电脑游戏才开始了商业化,虽然那时游戏的图形效果非常简陋,但已经开始了类型化。随着多媒体技术的成熟,1985年,日本任天堂公司开发出的游戏巨作超级马里奥,奠定了任天堂在游戏界的地位。Windows操作系统的出现让电脑游戏向着注重刺激的3D方向发展。进入21世纪,因特网的发展使得网络游戏成为电脑游戏发展的新的方向[1]。
俄罗斯方块是由苏联人的游戏制作人Alex Pajitnov制作的,它最早是以电脑游戏的形式出现,而随着信息技术的发展,PC机游戏不断发展,而移动通信技术的不断发展使得俄罗斯方块也在不断地推陈出新,玩法各种各样,但基本原理不曾变化,都是通过移动、旋转和摆放这些系统随机输出的方块使它满行消除,若窗口溢出,则游戏结束,玩法非常简单,还可以训练玩家的反应能力、逻辑思维能力[5]。
目前游戏市场上主要有的平台:塞班平台(仅有少部分手机支持,如诺基亚、三星等)、IOS平台、、Android平台和windows平台等,IOS平台受制于终端数量增长缓慢,Android平台由于终端的普及以及自身性能的提升而飞速增长,用Android平台开发的游戏采用的是Java语言,Java语言具有安全性、健壮性、易于使用、可移植性和跨平台等优点[11],所以Java语言很适合俄罗斯方块的开发。
游戏采用MVC(model/view/control)的框架来设计,V表示的是界面显示的窗口设计,C表示的是用控制器进行游戏线程的控制,对游戏业务接口、数据访问接口经行处理,M表示游戏的业务逻辑和数据访问(数据库和本地磁盘)[3]。相对于传统的俄罗斯方块游戏,本次设计还添加了排行榜,游戏换肤等功能。游戏中的一些功能采用到对应的技术有:数据库窗口(显示得分前5位玩家的信息)使用JDBC连接数据库;本地记录(显示本地磁盘中得分前5位玩家信息)用到文件的I/O操作;按钮窗口(开始、暂停)采用事件监听;下一个窗口(显示即将下落的方块的形状)使用JPanda绘图;主窗口的下落操作要用到线程控制,下落方块要用到定长坐标数组[4],具体技术下面系统设计会详细介绍。
Key words: computer games; Tetris; MVC pattern; Java language 目 录
第一章 绪论 1
1.1开发背景 1
1.2开发目的和意义 1
1.3系统开发环境和工具 2
1.3.1 eclipse4.7开发工具介绍 2
1.3.2 Microsoft SQL Server2012数据库介绍 2
1.4 论文主要研究内容与组织结构 3
1.4.1 论文主要研究内容 3
1.4.2 论文组织结构 3
第二章 游戏概要设计 4
2.1游戏设计总述 4
2.2框架设计 4
2.3游戏界面设计 6
2.4游戏类库设计 6
第三章 数据库的设计 8
3.1数据库表的设计 8
3.1.1玩家表 8
3.1.2进度表 8
3.1.3朋友圈表 8
3.1.4道具表 8
3.1.5用户道具表 9
第四章 关键技术分析 10
4.1方块的数据结构与绘制 10
4.2游戏 *好棒文|www.hbsrm.com +Q: ^351916072#
边框的数据结构与绘制 11
4.3线程控制方块下落 11
4.4方块消行 11
4.5统计得分 12
4.6绘制值槽 13
4.7数据记录 13
4.8按钮模块 13
4.9保存记录 14
第五章 功能实现 15
5.1游戏主界面 15
5.2数据库记录(排行榜) 18
5.3本地记录 20
5.4按钮设计 21
5.5显示方块和当前等级 25
5.6显示模块 26
5.7相关信息 27
5.8保存分数 27
5.9方块消行 29
5.10游戏结束 29
第六章 游戏中的人工智能 31
6.1俄罗斯方块人工智能的概述 31
6.2人工智能的构想 31
6.3人工智能的相关算法 31
6.3.1A*最短路径算法 31
6.3.2算法应用 32
第七章 系统测试 37
7.1测试方法 37
7.1.1黑盒测试 37
7.1.2白盒测试 37
7.2.1按键事件的功能测试 38
7.2.2方块的堆积与消行测试 38
7.2.3按钮功能测试 39
7.2.4等级功能测试 39
7.2.5游戏结束测试 39
7.2.6游戏记录测试 40
7.3测试总结 40
第八章 总结与展望 41
8.1总结 41
8.2展望 41
结束语 42
致 谢 43
参考文献 44
第一章 绪论
1.1开发背景
电脑游戏是指在计算机上运行的具有娱乐功能的电脑软件,电脑游戏能为游戏用户提供了一个虚拟空间,带给用户很多新的体验。1962年,游戏发明人斯蒂夫.拉塞尔在美国DEC公司生产的《宇宙战争》是当时非常有名的电脑游戏。1970年,随着苹果的问世,电脑游戏才开始了商业化,虽然那时游戏的图形效果非常简陋,但已经开始了类型化。随着多媒体技术的成熟,1985年,日本任天堂公司开发出的游戏巨作超级马里奥,奠定了任天堂在游戏界的地位。Windows操作系统的出现让电脑游戏向着注重刺激的3D方向发展。进入21世纪,因特网的发展使得网络游戏成为电脑游戏发展的新的方向[1]。
俄罗斯方块是由苏联人的游戏制作人Alex Pajitnov制作的,它最早是以电脑游戏的形式出现,而随着信息技术的发展,PC机游戏不断发展,而移动通信技术的不断发展使得俄罗斯方块也在不断地推陈出新,玩法各种各样,但基本原理不曾变化,都是通过移动、旋转和摆放这些系统随机输出的方块使它满行消除,若窗口溢出,则游戏结束,玩法非常简单,还可以训练玩家的反应能力、逻辑思维能力[5]。
目前游戏市场上主要有的平台:塞班平台(仅有少部分手机支持,如诺基亚、三星等)、IOS平台、、Android平台和windows平台等,IOS平台受制于终端数量增长缓慢,Android平台由于终端的普及以及自身性能的提升而飞速增长,用Android平台开发的游戏采用的是Java语言,Java语言具有安全性、健壮性、易于使用、可移植性和跨平台等优点[11],所以Java语言很适合俄罗斯方块的开发。
游戏采用MVC(model/view/control)的框架来设计,V表示的是界面显示的窗口设计,C表示的是用控制器进行游戏线程的控制,对游戏业务接口、数据访问接口经行处理,M表示游戏的业务逻辑和数据访问(数据库和本地磁盘)[3]。相对于传统的俄罗斯方块游戏,本次设计还添加了排行榜,游戏换肤等功能。游戏中的一些功能采用到对应的技术有:数据库窗口(显示得分前5位玩家的信息)使用JDBC连接数据库;本地记录(显示本地磁盘中得分前5位玩家信息)用到文件的I/O操作;按钮窗口(开始、暂停)采用事件监听;下一个窗口(显示即将下落的方块的形状)使用JPanda绘图;主窗口的下落操作要用到线程控制,下落方块要用到定长坐标数组[4],具体技术下面系统设计会详细介绍。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/32.html