基于Android的拼图游戏设计与实现毕设论文

基于Android的拼图游戏设计与实现毕设论文
基于Android的拼图游戏设计与实现毕设论文

基于Android的拼图游戏设计与实现

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期: -指导教师签名:日期:

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日

导师签名:日期:年月日

注意事项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印

4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档

5.装订顺序

1)设计(论文)

2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

指导教师评价:

一、撰写(设计)过程

1、学生在论文(设计)过程中的治学态度、工作精神

□优□良□中□及格□不及格

2、学生掌握专业知识、技能的扎实程度

□优□良□中□及格□不及格

3、学生综合运用所学知识和专业技能分析和解决问题的能力

□优□良□中□及格□不及格

4、研究方法的科学性;技术线路的可行性;设计方案的合理性

□优□良□中□及格□不及格

5、完成毕业论文(设计)期间的出勤情况

□优□良□中□及格□不及格

二、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

三、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

建议成绩:□优□良□中□及格□不及

(在所选等级前的□内画“√”)

指导教师:(签名)单位:(盖章)

年月日

评阅教师评价:

一、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

二、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

建议成绩:□优□良□中□及格□不及

(在所选等级前的□内画“√”)

评阅教师:(签名)单位:(盖章)

年月日

教研室(或答辩小组)及教学系意见

教研室(或答辩小组)评价:

一、答辩过程

1、毕业论文(设计)的基本要点和见解的叙述情况

□优□良□中□及格□不及格

2、对答辩问题的反应、理解、表达情况

□优□良□中□及格□不及格

3、学生答辩过程中的精神状态

□优□良□中□及格□不及格

二、论文(设计)质量

1、论文(设计)的整体结构是否符合撰写规范?

□优□良□中□及格□不及格

2、是否完成指定的论文(设计)任务(包括装订及附件)?

□优□良□中□及格□不及格

三、论文(设计)水平

1、论文(设计)的理论意义或对解决实际问题的指导意义

□优□良□中□及格□不及格

2、论文的观念是否有新意?设计是否有创意?

□优□良□中□及格□不及格

3、论文(设计说明书)所体现的整体水平

□优□良□中□及格□不及格

评定成绩:□优□良□中□及格□不及

教研室主任(或答辩小组组长):(签名)

年月日

教学系意见:

系主任:(签名)

年月日

摘要

博思数据研究中心发布的《2011-2015年中国手机游戏行业市场分析与投资前景研究报告》中称,据不完全统计,截止2007年年初,中国移动、联通的用户数量突破5亿大关之多,作为一个重要的手机应用来讲,手机游戏的发展如众人预期的得到了迅猛的发展,同时手机作为游戏平台的主流载体之一,其自身的特性优势已经逐渐体现出独有的魅力,研究和学习手机游戏开发与设计的方法与技术,是保证我国在该行业的综合实力水平的,具有重要战略意义的一项工作。

本文首先从Android手机游戏市场的现状出发,按照拼图游戏的实际项目的具体需求,学习和研究需要的开发方法和技术,有计划的针对项目进行设计与规划,进一步明确开发的方向和项目实施的计划目标,并在项目实施的过程中,总结和归纳出来手机游戏开发的主要流程,这个流程涵盖了项目需求分析、设计、代码实现、性能测试的相关内容。

该系统采用Android SDK,Eclipse作为开发工具。

关键词:Android;手机游戏;拼图游戏

摘要 (2)

Abstract ......................................................................................................... 错误!未定义书签。1绪论 .. (1)

1.1课题背景 (1)

1.2主题 (1)

1.3本文主要工作 (3)

2 Android系统简介 (4)

2.1 Android系统概述 (4)

2.2 Android系统架构 (5)

2.3 Android开发环境配置 (7)

2.4 Android程序开发 (10)

2.4.1 程序开发组件 (10)

2.4.2 程序界面开发 (14)

2.5 Android系统数据存储方式 (16)

3 流程介绍与概要设计 (17)

3.1 游戏流程介绍 (17)

3.2 系统概要设计 (17)

3.2.1 界面布局模块 (18)

3.2.2 难度选择模块 (18)

3.2.3 图片选择模块 (19)

3.2.4 计时器模块图片选择模块 (19)

3.2.5 游戏实现模块 (19)

4拼图游戏的设计与实现 (20)

4.1 功能实现 (20)

4.2 程序运行截图 (27)

5 结论与展望 (30)

参考文献 (31)

致谢 (33)

1绪论

1.1课题背景

随着社会的发展,经济水平的提高,手机越来越普及。据工信部统计数据,2014年一月底中国移动通讯用户达12.35亿,其中4.19亿(33.94%)为3G用户,8.38亿(67.80%)为移动互联网接入用户。同时伴随着移动互联网技术的发展,手机的功能也变得越来越丰富。从原来只具有简单通信功能的非智能手机到现在具有手机操作系统,除通话功能以外,还集游戏、上网、聊天、炒股、收发邮件等功能于一身的智能手机系统。

智能手机具有独立的操作系统,像个人电脑一样支持用户自行安装软件、游戏等第三方服务商提供的程序,并通过此类程序不断对手机的功能进行扩充,同时可通过移动通讯网络来实现无线网络接入。目前手机的娱乐性越来越强,开发出一款上手简单、可玩性强的手机游戏具有十分重要的意义。Android系统也为实现这些功能提供了强大的技术支撑。

手机游戏市场的发展势头如此迅猛,究其原因从本质上来说可以分为两个主要方面,其一是手机已经普及成为全球各个角落最为寻常的通信工具,是人们日常生活中不可或缺的随身物品之一,这为手机游戏市场提供了巨大的潜在用户群体;其二是如前面提到的,手机性能的不断提升使其具备承载画面更加精美,体积更加庞大的游戏的能力,因此更多的手机用户和非手机用户被它所吸引。用发展的眼光来看,手机的功能已经从较早时期简单的接打电话,收发短信息成功的向多媒体、多功能的网络化,娱乐化转型,我们有理由相信在不久的将来,手机在人们的日常生活、工作中将担当更重要的任务。

1.2主题

Android系统从推出至今一直在不断改进和完善。从最初的Androidl .1到目前最新的Android4.4,Android系统在功能和性能上都有很大的提升。同时Google 也为每次推出的系统起了很可爱的名字,如Android4.1中文名为果冻豆,最新的Android4.4中文名为奇巧。与其它终端操作系统相比,Android系统不仅在硬件上具有开放的和多样的、与运营商和制造商无关的特性,还具有无缝结合的Google 应用。

最新的Android 4.4系统于2013年9月在Google I/O 2013开发者大会上发布,与之前的系统相比,新系统主要在以下方面进行了改进:

1)RAM优化。Android 4.4 KitKat针对RAM占用进行了优化,甚至可以在一些仅有512MB RAM的老款手机上流畅运行。它也进一步优化了系统在低配硬件上的

运行效果,支持内核同页合并KSM,ZRAM 交换,似乎是为了更好地在众多智能穿戴设备上运行。

2)新图标、锁屏、启动动画和配色方案。之前蓝绿色的配色设计被更换成了白/灰色,更加简约,另外图标风格也进一步扁平化,还内置了一些新的动画,整体来说界面更漂亮、占用资源更少。另外,还加入了半透明的界面样式,以确保状态栏和导航栏在应用中发挥更好的效果。

3)新的拨号和智能来电显示。首先,新的拨号程序会根据你的使用习惯,自动智能推荐常用的联系人,方便快速拨号;同时,一些知名企业或是服务号码的来电,会使用谷歌的在线数据库进行匹配自动显示名称,即使你的手机中没有存储它们。

4)加强主动式语音功能

5)Android 4.4内置了Hangouts IM软件,类似于国内的微信,可以实现跨平台的文字、语音聊天功能,也能够传输图片、视频等各种文件。

6)全屏模式。不论你是在看电子书、或是使用任何应用程序,都能够方便地进入到全屏模式,隐藏虚拟按键,带来更投入的使用体验。只需滑动屏幕边缘,便可找回按键,也十分方便。

可以看出,Google对于Android系统的升级主要是以用户体验为出发点,为用户提供了更便捷、更丰富多彩的使用感受。

Android系统从上至下由Linux内核层、中间层、应用程序框架(Application Framework)和应用层(Applications)组成,涉及到的开发语言有Java,C/C++等。对于这样一个庞杂的系统,开发者不可能做到面面俱到。根据Android的四层结构可以将开发划分为四种类型,分别是kernel内核开发、Libraries开发、中间Framework层的开发和上层应用程序的开发。Linux内核开发的主要工作是将Android系统内核移植到不同的硬件平台上,并提供相应的硬件驱动;Libraries 开发的主要工作是调用Linux驱动完成一些硬件操作,并包含一些高效的C/C++函数库;中间Framework层的开发主要由Google完成,Google己经定义了基本的GUI和系统服务架构,因此,对于这部分的开发更多的是在原来的基础上完成一些扩展;上层应用程序开发的主要工作是开发功能各异的应用程序,具体包括如何创建一个窗口,如何给窗口添加一些文字、按钮等,如何对用户的输入作出响应,如播放音乐、存储数据、启动程序、发短信、打电话等。对于Android终端设备制造商而言,可能会涉及到其中每一种类型的开发,而对第三方软件开发人员来说,主要涉及到的就是上层应用程序的开发。应用程序的开发又可以划分为三种形式,一是为特定对象开发,二是为普通用户开发,第三类是游戏开发。第一类开发者往往是大型公司或团体,他们开发的不仅仅是一两个应用,而是设计

整个手机或平板电脑的应用程序。第二类和第三类开发者通常都是一些个人或是小型的团体,他们自主开发一些第三方应用或手机游戏,通过Android市场或其他网站出售,赚取利润。目前Android系统的第三方应用大多是免费的,因此与App Store中的应用软件相比,Android市场上的应用在数量还是有一定差距。

随着手机技术的发展,手机游戏正在向图片游戏,特别是基于3G网络平台方向发展。Java游戏等都是比较常见也比较流行的游戏,手机虽然可能不是一个理想的游戏设备,但毕竟人们总是随时随身携带,这样手机游戏很可能成为人们消遣时间的首选。未来的手机游戏在智能手机和3G网络的基础上,可以达到更高更炫目的游戏效果。目前各厂商正将显示芯片植入手机提升图形显示性能,使手机在进行多媒体演示和游戏时有更够出色的显示效果。

1.3本文主要工作

本文首先介绍了Android操作系统的四层架构及基于Android系统的应用程序开发方法,接下来以拼图游戏的研发过程为例,详细阐述了开发Android系统应用程序的具体过程。文中仔细分析了拼图游戏的功能模块,确定了拼图游戏中数据的存储介质为SQLite数据库。在此基础之上,设计并实现基于Android的拼图游戏,具体实现以下功能:

1)可以自由选取手机中现有的图片进行拼图;

2)可以用游戏设定的图片进行拼图;

3)可以自由选取拼图的难度;

4)可以设定游戏完成时间或者增加提示。

2 Android系统简介

2.1 Android系统概述

Android一词本意是指“机器人”,是Google公司推出的开源手机操作系统作为Google移动互联网战略的重要组成部分,Android操作系统借助于Google这个强大的推手和开放手机联盟的支持,由默默无闻变得备受瞩目,各种各样基于Android系统的设备相继问世。

虽然Android系统从推出到现在不过短短几年时间,但作为移动终端设备操作系统中的重量级一员,它的影响力越来越大,吸引了越来越多的开发者、设备生产商和软件开发商等加入。作为一个推出不久的移动终端开发平台,为何会有如此强大的发展潜力和如此迅猛的发展速度,每个人都会有自己的答案。总结起来,可能包括以下几点:

1)系统的开源性和免费性:Android系统是一个对第三方软件完全开放的平台,开发者在编写Android应用程序时具有更大的自由度。

2)移动互联网的发展:Android采用WebKit浏览器引擎,与其它系统相比,更强调搜索功能,界面更强大,是一种融入全部Web应用的互联网络平台。

3)相关厂商的大力支持:从组建开放手机联盟开始,Google一直向服务提供商、芯片厂商和手机销售商提供Android平台的技术支持,帮助他们开发出更好的Android设备。

凡事都具有两面性,作为一个如此受欢迎的系统也不例外。Android系统也有自身的一些缺点,具体如下:

1)技术需要进一步完善:每个系统都不是完美的,Android也不例外,系统自身的一些bug需要进一步完善。尤其是Android系统作为一个开源的系统,面临的攻击会比其它封闭系统要多,这是Android系统要持续发展所必须解决的一个重要问题。

2)开放手机联盟模式的挑战:Android由开放手机联盟开发、维护和完善,这种模式,是否会对Android未来的发展、定位起到阻碍作用,这些都不能下定论。

3)其他技术的竞争:微软因为拥有PC操作系统市场最大的占有率,在未来手机与电脑互相联动并实现无缝对接方面Windows Mobile相比Android具有先天优势,此外,即使在智能终端自身的操作系统上,iOS系统也是Android的一个劲敌。这些都给Android系统的进一步发展带来了巨大挑战,如果能很好的解决这些问题,也将会进一步促进系统的发展。

2.2 Android系统架构

Android系统采用了软件栈的设计结构,从上到下由四层组成,分别是Linux内核层、中间层、应用程序框架(Application Framework)和应用层(Applications)。如图2-1所示。

图2-1 Android系统架构

下面对每层进行具体的描述:

(一)Linux内核:Android系统的内核在Linux2.6内核的基础上进行了相应的裁剪和改进,继承了Linux内核安全性、内存管理、进程管理、网络

协议栈和驱动模型等。Linux内核同时也为硬件和软件之间提供了衔接,屏蔽了下层硬件的具体细节来为上层提供服务。

(二)Android函数库:Android包含一个能被不同组件使用的C/C++库,这些库通过Android应用程序框架来为上层应用程序提供服务,下面是一些常用的核心库:

1)libc:系统C库,从BSD发展而来的标准C函数库,是专门为基于嵌入式Linux设备所定制的。

2)媒体库:基于PacketVideo OpenCORE,支持多种常用的音频、视频格式回访和录制,同时支持静态图像文件。

3)Surface Manager:管理显示子系统,为多个应用程序提供2D和3D 图层的无缝融合。

4)SGL:底层的2D图形引擎。

5)3D libraries:基于OperGL ESI.OAPI实现,可以使用硬件3D加速或高度优化的软件3D加速。

6)RreeType:位图和矢量字体显示。

7)SQLite:一个对所有应用程序可用的、功能强大的轻量级关系型数据库引擎。

(三)Android运行时:Android运行时环境由一个核心库(Core Libraries)和一个D alvik虚拟机组成,核心库为上层应用程序编程提供了Java语言核心库的大多数功能。Dalvik虚拟机是一个不同于其他标准虚拟机的虚拟系统,采用寄存器架构,能在一个设备中同时高效运行多个程序。它基于Linux内核的一些功能,如多线程机制和内存管理机制等。Dalvik虚拟机可以运行Android程序,这些程序需要使用dx工具转换成.dex类型的可执行文件,该格式文件在大小方面往往比同样的.class文件压缩成的.jar文件更小,可以降低对内存的要求。

(四)应用程序框架:包含编写核心应用所使用的API接口,开发者可以使用这些接口来编写自己的应用程序,该程序的架构设计简化了组件的重用,任何一个应用程序都可以发布它的功能块,同时还可以使用其他程序发布的功能块(但是要遵循安全限制)。每个应用都会包括一系列的服务和系统,具体如下:

1)丰富而又可扩展的视图:构建应用程序时可以将这些视图进行各种组合来形成各式各样的应用程序界面。常用的视图包括:列表、网格、文本框、按钮和内嵌的浏览器等。

2)内容提供器:提供数据共享的途径,如联系人数据库。

3)资源管理器:管理非代码资源,如字符串、图片和布局文件等并提供这些资源的访问方式。

4)通知管理器:帮助应用程序在状态栏中显示各自的提示信息,如收到短信

5)活动管理器:管理应用程序的生命周期,还提供导航或回退功能等。

(五)应用程序:包括电话、短信、口历、地图、浏览器、通讯录等核心应用程序。

2.3 Android开发环境配置

由于Java语言具有强大的功能和与平台无关的特性,并且还具备强制类型安全,因此Google选择使用Java语言来开发Android系统下的应用程序。

Eclipse是一个开放源代码的、基于Java的且具有良好扩展性的开发平台。Eclipse本身只是一个框架和一组服务,但是通过加入插件可以构建针对不同语言的开发环境,目前支持的主要开发语言有Java和C/C++。基于以上优点选择使用Eclipse来搭建Android程序的开发环境并详细介绍环境的配置过程。搭建Android开发环境有以下五个主要步骤:下载并安装JDK;下载并安装Eclipse;下载Android SDK;下载并安装ADT插件;配置Android AVD。

1)下载并安装JDK;

JDK是Java SE Development Kit的简写,其中包括了Java运行环境、Java 开发工具和一些Java核心类库等。在安装Eclipse之前,必须先下载和安装JDK。

JDK是由SUN公司开发,因此要下载最新的JDK,只要登录SUN公司的官网,选择适合自己电脑的版本下载并按照提示安装即可,如图2-2所示。

图2-2 下载安装JDK

JDK安装完成后,还得配置相应的环境变量才能使用。环境变量的配置分为两部分,一是JAVA HOME变量的配置,二是CLASSPATH变量的配置,这两者的配置方法类似。

2)下载并安装Eclipse;

进入http://https://www.360docs.net/doc/7914892865.html,/downloads/页面,选择合适的Eclipse版本下

载,如图2-3所示。安装时注意选择合适的安装路径。

图2-3 下载安装Eclipse

3)下载Android SDK;

Android SDK是Android专用的软件开发包工具,包括程序开发中用到的函数库、编译程序等资源,是开发Android程序必备的工具之一。SDK的下

载网址是http://https://www.360docs.net/doc/7914892865.html,/sdk/index.html,下载后,不用安装,

只要解压到适当的位置并在Eclipse中进行设置即可使用。具体设置方法是在Eclipse界面上选择Window-Preference-Android,然后在SDK Location框中选择SDK的解压路径,点击Apply按钮,最后单击OK完成。如图2-4。

图2-4 加载Android SDK

4)下载并安装ADT插件;

ADT是为方便Android应用而开发的插件,包含一系列强大的扩展功能,可以方便、快捷的创建、运行和调试Android程序。安装ADT的步骤如下:

首先,打开Elicpse,选择Windows-Preference-Help-Software Updates然后选择Available Software接着选择Add Sites,在弹出的地址框中输入http://https://www.360docs.net/doc/7914892865.html,/Android/eclipse/,然后单击OK。在出现的列表中确保http://https://www.360docs.net/doc/7914892865.html,/Android/eclipse/选项被选中,然后单击Install按钮,最后安照提示步骤即可完成安装。

5)配置Android AVD。

在Android SDK1.5版本以后的开发中,必须至少创建一个AVD来模拟一套虚拟设备运行Android应用程序。创建AVD有两种方式,一种是命令行方式,另一种是在Eclipse中创建,无论哪种方式,系统都会在默认文件路径下自动创建一个Android文件夹来保存与AVD有关的配置信息。这里只介绍在Eclipse中创建AVD的方法,步骤如下:打开Eclipse,单机Android小机

器人打开Android SDK and AVD Manager;点击左侧面板的Virtual Devices,再点击右侧的New;填入Name,选择Target的API,SD Card大小任意;点击Create AVD即可完成AVD的创建。如图2-5。

图2-5 配置AVD

2.4 Android程序开发

2.4.1 程序开发组件

一个Android应用程序通常由以下五个组件中的任意多个组成:活动(Activity )、意图(Intent )、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。Activity负责应用程序的界面显示;Intent 负责不同组件之间的交互;Service在后台运行,负责执行程序中比较费时的任务;而Content Provider为不同的应用程序之间提供了一种数据共享方式。其中Activity组件是每个应用程序所必须用到的,因为任何一个应用程序都必须具备与用户交互的界面。

(一)Activity:最基本的应用程序组件,通常表示为一个单独的屏幕。每个Activity都是通过继承来被实现为一个单独的活动类,一个应用程序通

常由多个Activity组成,每个Activity都具有自己的生命周期。Android系统中通过一个被称为Activity栈的东西来管理各个Activity之间的关系,当有新的Activity启动时,它被置于栈顶,之前的Activity被保留在栈中,不再出现在前台,直到当前的Activity退出为止。打开前一个Activity可以通过回退来实现。Activity的生命周期如图2-6所示,主要有以下4种状态,分别是:

1)活动状态,此时Activity处于栈顶位置并可以与用户交互,具有可见性。

2)暂停状态,此时的Activity失去了焦点,但是依然保持可见状态(非全屏或是透明)并保存所有的信息,在内存过低时可能被“销毁”。

3)停止状态,此时的Activity由于被其他Activity所遮挡而处于不可见状态,但是依然会保存所有的信息,在系统内存过低时会被“销毁”。

4)结束状态,此时的Activity已经被从内存中销毁,下一次启动时需要重置之前被保存的状态。

图2-6 Activity的生命周期

C#面向对象课程设计--拼图游戏

《C#程序设计》课程设计 题目:拼图游戏 专业:计算机科学与技术 学号: 姓名: 指导老师: 完成日期: 2012/12/26

《C#课程设计》评分标准 题目:拼图游戏专业:计算机科学与技术学号:姓名:

目录 1 前言 (4) 2 需求分析 (4) 要求 (4) 任务 (4) 运行环境 (4) 开发工具 (4) 3 概要设计与详细设计 (5) 系统流程图 (5) 结构功能图 (5) 4 编码与实现 (6) 编码分析 (6) 具体代码实现(附源代码) (9) 5 课程设计总结 (18) 参考文献 (19)

1.前言 拼图游戏一款非常经典的小游戏,因为它比较简单有趣,无论老少都比较适合。拼图的设计对每一个C#语言设计者进行语言提高和进阶都是一个很好的锻炼机会。拼图游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个拼图游戏,对于提高C#开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。一个3×3的魔板,有一个格子是空的,其他格子内随机放置1-8共8个编号的方块,通过单击任意一个与空格子相邻的方块可以把该方块移入空格子,不断的移动方块,直到方块按照图片的原来的顺序排好。 2 需求分析 要求 (1)用C#语言实现程序设计; (2)利用PictureBox控件来实现图片的移动 (3)超过200步提示重新来 (4)界面友好(良好的人机互交),程序要有注释。 任务 (1)制作流程图 (2)编写代码; (3)程序分析与调试。 运行环境 (1)WINDOWS2000/XP/win7系统 (2)编译环境 开发工具

基于Android 益智拼图游戏设计毕业论文

基于Android 益智拼图游戏设计毕业论文 目录 摘要........................................................... I I Abstract....................................................... I II 1 绪论. (1) 1.1 课题开发的背景 (1) 1.2 课题意义 (1) 2 Android架构与开发平台搭建 (2) 2.1 Android的系统架构 (2) 2.2 Window下Android开发环境的搭建 (4) 3 流程介绍与概要设计 (5) 3.1 游戏流程介绍 (5) 3.2 系统概要设计 (6) 3.2.1 界面布局模块 (6) 3.2.2 难度选择模块 (6) 3.2.3 图片选择模块 (7) 3.2.4 步数和时间模块 (7) 3.2.5 游戏实现模块 (7) 4 系统详细设计与实现 (8) 4.1 界面布局实现 (8) 4.1.1 选择界面布局 (8) 4.1.2 游戏界面布局 (9) 4.2 游戏功能实现 (11) 4.2.1 难度选择 (11) 4.2.2 图片选择 (12) 4.2.3 步数和时间设置 (13) 4.2.4 拼图的实现 (14)

5 系统测试 (17) 5.1 Android仿真器介绍 (17) 5.2 功能模块测试 (17) 5.3 出现的错误及解决方案 (20) 6 总结与展望 (21) 参考文献 (22) 附录 (23) 致谢 (33)

基于Android益智拼图游戏设计 摘要 随着移动设备的日益普及,使用Android技术开发手机软件受到越来越多人的青睐。在此背景下,本课题开发了一款Android平台下的手机游戏——益智拼图。 本文首先对Android的研究背景,系统架构以及开发环境进行介绍,然后就玩家对游戏的需求进行一定的分析,最后运用Android技术实现拼图游戏的开发,并合理布局游戏界面,使游戏界面更加美观和人性化,实现了游戏的基本功能,最终可以让玩家享受拼图游戏的乐趣。 关键词:Android;拼图游戏;Activity;架构

拼图游戏制作文档汇总

基于MFC的拼图游戏设计 宋富冉操梦雅 摘要:拼图游戏是一个广受欢迎的智力游戏,按人数参与个数可分为单人游戏和多人游戏,按拼图规则它可分为摆放式和挪动式两种类型。本设计是基于Visual C++ 6.0和MFC的拼图游戏设计,设计了一个操作简单的挪动式单人拼图游戏。本游戏主要包括游戏界面设计、难易度选择、游戏图片选择、游戏系统设计、判断拼图是否成功等几个模块,程序设计中应用了类、数组、鼠标响应、菜单消息响应等元素和语句。此游戏的设计主要以学习和熟悉Visual C++ 6.0和MFC软件开发为主要目的。 关键词:拼图; Visual C++ 6.0; MFC 1.任务描述 1.1 拼图简单介绍 拼图游戏是广受欢迎的一种智力游戏,它的变化多端,难度不一,让人百玩不厌。 个性化的拼图,拼凑的不仅仅是一张照片,而是一个故事,一段回忆,一段温情。每一片的单片都有属于它自己的位置,就像每段回忆都有属于它的故事,你要将它放在专属的地方。你可以把你记忆中最深刻的片段,你挚爱的照片,你最难忘的一瞬间,做成拼图,在你想起的时候一一拼起。 拼图游戏不仅能增强思维能力,提高智力,而且富含哲理,有助于加强我们的动手能力和我们的洞察能力。 1.2 基本设计要求

我们设计的拼图游戏是一个具有简单的系统界面,操作简单易行,上手快,适用于广大用户的小游戏。此游戏分散的小图片的移动规则是小图片会朝着空位置方向移动,玩家在界面上先通过鼠标点击“游戏图片选择”选择要拼的图片,然后通过鼠标左键点击要移动的小图片,小图片会自动移动到原来没有图片的位置,移动时,预备移动的图片旁边必须要有可供移动的位置,直到拼合出原来的图片,并且成功拼成图片后会出现“看来这对你来说太简单了,挑战更高难度吧!”一句话。具体设计要求如下: (1)可以打开并显示.bmp任意大小的图片; (2)游戏开始之后,可以自动随机打乱图片; (3)用户可以点击方块进行上下左右的交换,直到拼出原图片; (4)系统能够自动检测用户是否拼出原图,并提示用户拼图是否成功。 2.系统需求分析 2.1 功能需求分析 (1)用户能用鼠标控制系统界面上各个菜单选项的选择。 (2)游戏难度选择功能:用户可以通过参数设置自定义选择游戏的难度,系统开始默认的是9块,如果用户想挑战更困难的,可以在设置参数设置中进行相应的参数修改,比如4*4=16块、5*5=25块、3*4=12块等。 (3)游戏音乐播放功能:用户可以根据自己的喜好进行选择是否播放音乐,所播放的音乐也是用户根据喜好自己来选择的。 (4)游戏原图显示功能:当玩家在玩游戏过程中忘记各个小图片的整体排列位置时能够进入原图显示功能查看完整图片,参考原图进行拼图游戏,以提高游戏的趣味性。 (5)游戏判断功能:用户通过移动每一小块图片,最终拼出和导入的图片一致时,系统则会判断你拼图成功,并提示“看来这对你来说太简单了,挑战更高难度吧!”这句话。

数字拼图游戏

安徽新华学院计科软件测试方法和技术 课程设计任务书 一、设计题目:数字拼图游戏(出题人:於世芳) 说明:一个拼图游戏。 二、目的与要求 1.目的 培养学生综合利用JAVA语言进行程序设计的能力,主要是培养学生利用JAVA的标准控件进行应用程序设计的技能。 2.基本要求 ?能够实现拼图功能。 ?可以通过初始化任意次的重新游戏。 ?游戏完成后做出相应提示. 3.创新要求 在基本要求达到后,可以参考其他拼图游戏,进行创新设计,创新方向提示如下: ★将数字换成图片。 ★可以记录游戏者成绩并排行 ★增加暂停功能或窗口最小化时暂停计时。 三、设计方法和基本原理 1.问题描述 程序界面见题图。 2.问题的解决方案 ①设计程序界面 因为用的全是基本控件,界面设计没有什么难度,这里涉及到动态添加控件数组,可参见课本控件数组一节内容。 ②编写代码 代码包括事件处理过程和功能函数,还有必要的声明。变量声明部分声明本程序所需要的变量和数组。

事件处理包括下面的主要事件: Form_Load() 作一些初始化的工作。主要是设定初始等级,动态添加控件数组。 Private Static Sub cmdButton_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) 游戏运行。 cmd_Click( ) 游戏初始化 其它功能的处理不再一一描述了 四、主要技术问题的描述 虽然界面操作有些复杂,但难点显然并不在于此。下面是初始化设置中的一段程序:package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.Event; import flash.text.TextField; //import mx.controls.Alert; public class Main extends Sprite{ var arr:Array=new Array(1,2,3,4,5,6,7,8); var ditu:Array=new Array(new Array(3),new Array(3),new Array(3)); var pailie:Array=new Array(new Array(0,0),new Array(40,0),new Array(80,0), new Array(0,40),new Array(40,40),new Array(80,40), new Array(0,80),new Array(40,80),new Array(80,80));

Java课程设计——拼图游戏

拼图游戏 1.游戏规则介绍 (1)本游戏中有一个格子是空的,其他格子内随机放置由要拿来拼图切割成的8个小图片。在开始游戏之前,会出现一张完整的图片,点击“菜单”里面的“开始”, 进行拼图游戏,通过将空格旁边的小图片与空格交换位置(不断的移动方块), 来实线拼图,直到方块一行一行的按图片的原始样子拼好即可完成该游戏。在 移动过程中,窗口右边会显示移动的步数。 (2)游戏拼完后,会弹出一个信息框,询问是否再玩一局,点击“Yes”将再打开一个游戏开始的界面,可以继续新的一局游戏,点击“No”将结束游戏,关闭所有窗 口。 2.游戏实现的功能 (1)点击运行程序,将弹出一个窗口,显示一张完整的图片。 (2)菜单栏的菜单,会出现3个菜单项:“开始”、“重新开始”、“结束”。 点击“开始”,即开始一局游戏;“在游戏的任何时候点击”重新开始“,即结束 当前游戏,重新开始一局新的游戏;点击“退出“,立即退出游戏,关闭窗口。 (3)在游戏过程中,游戏界面右边会同步显示当前的步数。 游戏的一些界面: (1)主界面: (2)菜单项:

(3)帮助--->关于 (4)点击开始 (5)游戏过程 (6)游戏成功

(7)破纪录 3.程序实现 Pt类: (1)建立一个类Pt,public class Pt extends JFrame implements KeyListener{}。该类继承父类JFrame,实现KeyListener接口。 (2)Pt类的构造函数Pt()。定义窗口参数,添加菜单栏和多个标签;调用读文件函数read (),读取该游戏的最高记录,并将该记录输出到标签上;为各个菜单添加事件,鼠标点击“开

MFC课程设计之拼图游戏设计报告

拼图游戏 实验报告 一、实验目的

1、通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。 2、通过实践进一步领会程序设计的特点和应用,提高运用C++ 以及面向对象知识解决实际问题的能力,初步掌握MFC变成的基本功能。 3、通过实践掌握用C++ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C++程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力,为后续的相关课程的学习打下基础。 二、小组分工 为了发挥组内同学的各自特长,我们小组分工如下: 1、苏嘉彬——前期进行系统需求分析,系统结构设计,完成拼图界面的设计工作, 后期完成课程设计报告 2、嵇鹏飞(组长)——完成主要程序的编写工作(图形分割、存储、拼图) 3、依代吐力·艾尼——搜集资料,完成计时器的设计工作,软件接口的设计及测 试 三、程序设计思路 1、初步方案讨论 拼图游戏是同学们喜欢的益智游戏之一,带着浓厚的兴趣,我们选择拼图游戏设计 作为我们小组本次MFC课程设计的课题。在讨论中,有的同学希望用单文档(SDI) 的形式完成本次设计,有的同学则偏向于用对话框(Dialogue)的形式,最终我们小组 讨论决定最终的设计采用对话框形式实现拼图功能。 2、方案变更、疑难解决 (1)最初我们决定采用对话框形式来实现拼图的基本功能,但是在实施过程中出 现了几次很严重的错误:Debug Assertion Failed,缺少ivewers.dll文件等等,在最后的 尝试中我们发现如果采用单文档(SDI)形式写拼图的话,可以实现最基本的功能,因 此我们最终决定使用单文档来完成该课程设计。 (2)一开始我们讨论决定采用的方式是将位图读入后再进行图片的分割,而在实 际的操作过程中由于图片的分割有一定的困难,因此我们最后采用的方式是将位图进行 分割完毕后再逐个用Brush在指定位置上进行绘画,实现图形的分割。 3、系统需求分析 (1)系统功能 简单的拼图游戏应该有拼图、计时、判断拼图成功、游戏者用时统计排名等功能, 拼图内部还应该有难度选择、相邻拼图块自动拼图等功能。图1所示是拼图游戏的用例 图,表明拼图游戏的主要功能。 图1 (

java课程设计-拼图游戏代码

package love; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.*; public class Games extends JFrame implements ActionListener { private JButton buttons[][];// 存储按键的数组 private Container container;// 一个容器 private GridLayout layout;// 布局方式为GridLayout private int count = 0, is[] = new int[8];// count的作用是计算按键移动的次数,is[]储存一个随机产生的1到8数字数组 public Games() { super("拼图游戏");// 设置标题 layout = new GridLayout(3, 3);// 3行3列 container = getContentPane();// 该容器的布局方式,及其重要,否则产生空引用异常 container.setLayout(layout);// 将该布局方式作用于容器 buttons = new JButton[3][3];// 给按键数组分配储存空间 int locate1, locate2;// locate1用来指示当前产生的元素 locate2用来指示locate1之前的元素 for (locate1 = 0; locate1 < 8; locate1++) {// 该方法作用是产生1到8这8个数,随机分配给数组,即无序排列 int g = new Random().nextInt(8) + 1;// 随机产生一个空白按键,即不显示的那个 is[locate1] = g; for (locate2 = locate1 - 1; 0 <= locate2; locate2--) { if (is[locate1] == is[locate2]) break; } if (locate2 != -1) locate1--; } int temp = 0; int r = new Random().nextInt(3);// 随机产生一个0到3的数,代表空白按键的行 int l = new Random().nextInt(3);// 随机产生一个0到3的数,代表空白按键的列 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) {

基于LabVIEW的拼图游戏设计

摘要 关键字 目录 1、绪论 1.1 G语言与虚拟仪器的概述 1.1.1 G语言的概述 虚拟仪器编程语言LabVIEW是一种图形化的程序语言,又称为“G”语言。LabVIEW 是一个功能比较完善的软件开发环境,它是为替代常规的BASIC或C语言而设计的。作为编写应用程序的语言,除了编程方式不同之外,LabVIEW具有编程语言的所有特性。使用这种语言编程时,基本不用写代码,取而代之的是流程图。 G语言是一种适合于任何编程任务,具有扩展函数库的通用编程语言。G语言和传统高级编程语言的最大的差别在于编程方式上的不同,一般高级语言采用的方法为本编程,而G 语言采用图形化编程方式。G语言编写的程序称之为虚拟仪器VI(Virtual Instrument),因为它的界面和功能与真实仪器基本相似,在LabVIEW环境平台下开发的应用程序都会被冠以.VI的后缀,以表示虚拟仪器的含义。G语言定义了数据类型、结构类型和模块调用语法规则等编程语言的基本要素等,在功能的完整性和应用的灵活性上毫不不逊于任何高级语言,G语言同时还具有丰富的扩展函数库。这些扩展函数库主要面向数据采集、GPIB以及串行仪器控制、数据分析、数据显示与数据存储等途径。G语言还包括常用的程序调试工具,例如包括断步调试、允许设置断点、数据探针和动态显示执行程序流程等功能[1]。 1.1.2 虚拟仪器的概述 虚拟仪器(Virtual Instrument)就是在以计算机为核心的硬件平台上,根据用户对仪器的设计定义,具有虚拟面板、用软件实现虚拟控制面板设计和测试功能的一种计算机仪器系统。使用者用鼠标点击虚拟面板,就可以操作这台计算机系统硬件平台。它是将现有的计算机技术、软件设计技术和高性能模块化硬件结合在一起而建立起来的功能强大而又灵活易变的仪器。 虚拟技术、计算机技术与网络技术是信息技术最重要的组成部分,它们被称为21世纪科学技术中的三大核心技术。电子测量仪器发展至今,大体经历了模拟仪器、分立元件式仪器、数字化仪器和智能仪器。目前,微电子技术和计算机技术的飞速发展,测试技术与计算机层次的结合使得虚拟仪器应运而生。虚拟仪器的出现导致了传统仪器的结构、概念和设计观点都发生了巨大变革,使得人类的测试技术进入了一个新的发展纪元。在过去的20年中,个人电脑应用的迅速普及促进了测试测量和自动化仪器系统的革新,其中最显著的就是虚拟仪器的出现与发展。虚拟仪器为工程师和科学家们提高生产效率、测量精度以及系统性能方面做出了卓越的贡献。 虚拟仪器的概念是由美国国家仪器公司提出来的,虚拟仪器本质是虚拟现实一个方面的应用结果。也就是说虚拟仪器是一种功能意义上的仪器,它充分利用计算机系统强大的数据处理能力,在基本硬件的支持下,利用软件完成数据的采集、控制、数据分析和处理

java拼图游戏面向对象课程设计报告

姓名Name 学号 Student No. 20137045 班级 Class 代码总行数Code Lines 222 项目名称 Item 1.实验目的 本次课程设计旨在通过一个完整项目的开发,巩固面向对象程序设计、软件工程、数据库技术等课程的相关知识,加深学生对Java语言的理解,尤其是对面向对象思想、Java编码规范、JDBC访问数据库的理解,使学生进一步掌握环境构建、代码编写、文档阅读与理解、文档编写、软件测试、发行与部署等技能,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。 2.实验内容 本次课程设计选定的实验项目是使用JAVA语言编写一个拼图游戏并实现其基本功能。不用自己手动切割图片,再进行加载。而是应用类方法在内存中进行图片切割和加载,方便了用户的使用。 利用了Graphics中的public abstract boolean drawImage()方法把img 中由(sx1, sy1)(sx2, sy2)指定的矩形区域画到observer 中由(dx1, dy1)(dx2, dy2)指定的矩形区域内进行构思拼图游戏的具体实现。 导入了一个可播放背景音乐的jar包,在玩游戏时可以欣赏背景音乐。 3.类图

4.运行界面

图1、游戏初始界面 图2、游戏运行界面

图3、拼图成功界面 5.关键代码(要求在类的定义以及方法定义的前面给出相关描述信息)//定义一个Pintu类 public class Jpgsaw extends JFrame{

private Image image, buff; //原始图片,缓存图片 private int[][] map = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8} }; //定义数组map,给分割后的图片标号 private Point point = new Point(2, 2); //记录第九块图片位置 private int sx; //分割后每一个图片的宽度 private int sy; //分割后每一个图片的高度 private Canvas canvas; //加载图片容器,定义可以显式定位子元素使用坐标是相对 Canvas 区域的区域,绘制图形 private Graphics gs; //gs画出Canvas图片坐标 private Graphics gb; //gb画出buff图像 private boolean isRunning = false; //游戏是否正在进行 private JButton start = new JButton("开始新的游戏"); // 按钮1 private JButton show = new JButton("显示正确图片"); //按钮2 private JTextArea showStep = new JTextArea("显示步骤");//设置步骤显示 private JPanel panel = new JPanel(); //一般轻量级面板容器,装在上面2个按钮 private int steps = 0; // 记录移动的步骤 public Jpgsaw(String title) { //构造方法,初始化变量 super(title);//调用了当前类Jpgsaw的父类JFrame的构造方法 try { //异常抛出 image = ImageIO.read(new File("gg.jpg")); //装载图片 } catch (IOException e) {//捕获自定义的异常 e.printStackTrace(); } initScreen(); //用此方法来初始化canvas,由于canvas 初始化较复杂,所以单独写一个方法 buff = new BufferedImage(715, 381, BufferedImage.TYPE_INT_BGR);//Image的一个子类,BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便的操作这个图片 gb = buff.getGraphics();//存在于Image类中,存在于缓冲器中的图片,设置坐标 sx = image.getWidth(this) / 3;//图片分割后每一个图片的宽度 sy = image.getHeight(this) / 3;//图片分割后每一个图片的高度 setLayout(new BorderLayout());//设置此布局方法,加入控件 add(panel, BorderLayout.SOUTH);//布置容器的边框布局,它可以对容器组件进行安排,并调整其大小 add(canvas, BorderLayout.CENTER); panel.setLayout(new GridLayout(1, 4));//把组件按指定的几行几列分开,添加其他组件时,会按添加的顺序挨个添加到该组件上 panel.add(start); panel.add(show); panel.add(showStep); showStep.setEditable(false);//步骤默认false,使调用这个函数的控件不能被编辑 showStep.setFont(new Font("黑体", Font.PLAIN, 16));//设置字体

VB课程设计报告--拼图游戏

VB课程设计报告 —拼图游戏 知识点:控件数组,公共对话框控件,PictureClip控件,多模块程序设计,图片的应用。 1.题目介绍 “拼图”是一种老少皆宜、容易上手的益智类小游戏,本题目要求编制一个拼图游戏程序。使用方法如下: (1)指定一幅图片,将其分割成m × n 个小图块并且打乱顺序后重新排列,其中有一块没有图块的“空挡”。 (2)使用鼠标单击与空挡相邻的图块使该图块与空挡的位置互换。(3)利用空挡位置移动各图块,最终恢复图片原貌,完成拼图。移动的步数越少则说明游戏者的水平越高。游戏过程中,可以打开参考图帮助找到正确的位置。 2.功能要求 (1)运行程序,在进入游戏之前显示一个背景图片。 (2)选择菜单中的“打开图片”命令,显示打开图片对话框,“打开图片”对话框使用公共对话框控件实现,并且只能指定以*.jpg *.bmp 为扩展名的文件。可以在查看菜单中选着“缩略图”进行预览。(3)选择图片之后,程序弹出“指定行列数”对话框,提示将图片分几行几列。使用微调按钮可以调节行数和列数,限制在3-7之间。(4)指定行列数之后,单击确定返回主窗口,程序自动按照指定的

行列数将图片进分割,然后随机排列。 (5)打乱的图片中一空挡位置,用户单击与空挡相邻的图块可以与其互换位置。点击了空挡或者与其不相邻的,程序不做任何操作。原图只少右下角的图块。 (6)图片复原时,程序显示消息框表示祝贺,同时显示游戏共使用的步数。 (7)游戏过程中,如果用户希望参考原图,可以单击“显示原图”按钮,打开“参考图”窗口。 (8)窗体中的背景颜色可以改变,从菜单中选择“背景颜色”命令,弹出“颜色”飞、公共对话框,用户从中选择一颜色即可。 (9)在游戏过程中或在完成后,均可退出程序或选择“打开图片”菜单命令重新开始一个新图片。 (10)“参考图”窗口应是一个非模态窗口,在关闭主窗口时同时卸载,而不是隐藏,否则该程序不会完全关闭,仍会驻留内存。 3.程序设计 概述:(1)PictureClip 控件来管理打开图片并将其分为指定的行列图块,其Picture、Rows、Cols等属性值应在程序中设定。 (2)使用image控件数组来显示图块,设计时只需在窗体上放置一个image控件并将其的index设为0 ,其他的用load语句加载。 (3)“打开图片”和“颜色”对话框commondialog控件实现。设置其filter属性使之只能打开bmp和jpg类型的图片文件。 (4)将image控件的stretch属性设计为TRUE。

VB课程设计:拼图游戏

Visual Basic课程设计报告 题目1:拼图游戏难度: *** 指导教师: 姓名: 学号: 专业: 班级: 学院: 日期:

1.题目简介 (1)本题目要求设计一个拼图游戏程序,要求如下: 指定一幅完整的图片,将其分割成m*n个小图块,打乱后重新排列,其中有一个没有图片的“空当”如图———— (2)使用鼠标单击与空当相邻的图块可以与其互换位置。 (3)利用空当位置使原图恢复原来的顺序,并记下玩家的移动步数,游戏过程中可以查看参考图以方便顺利通过游戏。

2、设计思路与总体方案 本程序包含五个窗体模块,其中以窗体frmMain的作用最为主要,该模块负责加载选定的图片并按所选的行列数分割,进行随机排列并加载空当,实现鼠标点击时其中的图块时与相邻的空当进行替换,实现拼图完成这个结束动作。 该模块中主要的变量有Rows ,Cols ,Arrange() ,space,started,steps showref Function isOK() 其中,Rows ,Cols ,showref这三个为全局变量,分别表示行数,列数,以及是否显示参考图(因此showref为逻辑型变量)其余变量为模块级变量,started也为逻辑变量,负责显示游戏是否已开始,Arrange()数组表示联系图像控件与数组的关系,space显示空当的位置,steps来记录玩家所走的步数,Function isOK()用来检验拼图是否已经完成的函数,为逻辑性变量。除外,过程变量tt(0 to2),b(0 to 2),s ,r ,c用来写入或读取排行榜中的记录。 其中,还设有菜单栏,通过CommonDialog控件负责实现“打开图片”与“配置颜色”对话框,并同时还拥有打开frmRecod(排行榜窗体模块)的工能。 主要代码(游戏初始时加载图片): Dim i As Integer Dim n As Integer CD.Filter = "图片文件(*.JPG,*.BMP)|*.jpg;*.bmp" CD.DialogTitle = "打开图片" CD.InitDir = App.Path & "\pics" CD.ShowOpen (显示指定图片对话框)If CD.FileName = "" Then Exit Sub If started Then For i = 1 To Rows * Cols - 1 '(清除已有的控件数组元素) Unload imgPT(i) Next imgPT(0).Picture = LoadPicture() If showref Then frmRef.Image1.Picture = LoadPicture() Else Me.Picture = LoadPicture() End If frmDivide.Show 1, Me ' (显示指定行列对话框)PC.Picture = LoadPicture(CD.FileName) PC.Rows = Rows PC.Cols = Cols n = Rows * Cols imgPT(0).Width = 320 / Cols ('窗体以像素为单位)

Flash拼图游戏制作课程设计报告

目录 第1章需求分析 (1) 1.1 引言 (1) 1.2 课程设计题目 (1) 1.3 课程设计目的 (1) 1.4 程序运行环境及开发工具 (1) 1.5 课程设计任务及要求 (1) 第2章概要设计 (2) 2.1 设计原理及方法 (2) 第3章详细设计 (3) 3.1 第一步: (3) 3.2 第二步: (3) 3.3 第三步 (4) 3.4 第四步 (5) 3.5 第五步 (5) 3.6 第六步 (6) 3.7 第七步 (7) 3.8 第八步 (8) 3.9 第九步 (8) 3.10 第十步 (9) 3.11 第十一步 (9) 3.12 第十二步 (10) 3.13 第十三步 (10) 3.14 第十四步 (11) 第4章系统调试与运行结果 (13) 4.1 系统调试 (13) 4.2 运行结果 (14) 第5章总结与体会 (15) 参考文献: (15)

第1章需求分析 1.1 引言 FLASH作为一款目前最流行的网络动画制作软件,恐怕不知道的人少之又少。其实FLASH强大的功能不光能让我们轻松制作动画,我们还可以利用它完成一些意想不到的工作。比如说是拼图游戏,在这个领域应用非常广泛!而且可以制作各种丰富有趣的小游戏来,是非常的有趣的! 1.2 课程设计题目 拼图游戏设计 1.3 课程设计目的 本课程的设计的目的是通过实践使同学们经历多媒体应用系统开发的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。结合具体的案例,理解并初步掌握常用多媒体软件的使用,利用多媒体计算机等设备进行音频与视频数据的获取和处理、图像处理与图像文件格式转换、超文本超媒体在交互式多媒体软件的应用;通过《多媒体课程设计》实验,使学生能够达到提高多媒体技术的实际开发应用能力,了解系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作过程。 1.4 程序运行环境及开发工具 硬件:PC机一台 软件:Windows 7,PhotoshopCS4,Flash8 1.5 课程设计任务及要求 设计“拼图游戏”,游戏是Flash制作中很重要的一部分,主要应用的是flash内

毕业论文--基于安卓系统的拼图游戏设计

毕业论文 设计(论文)题目:基于Android 益智拼图游戏设计

目录 摘要........................................................... I V Abstract ......................................................... V 1 绪论. (1) 1.1 课题开发的背景 (1) 1.2 课题意义 (1) 2 Android架构与开发平台搭建 (2) 2.1 Android的系统架构 (2) 2.2 Window下Android开发环境的搭建 (4) 3 流程介绍与概要设计 (5) 3.1 游戏流程介绍 (5) 3.2 系统概要设计 (6) 3.2.1 界面布局模块 (6) 3.2.2 难度选择模块 (6) 3.2.3 图片选择模块 (7) 3.2.4 步数和时间模块 (7) 3.2.5 游戏实现模块 (7) 4 系统详细设计与实现 (8) 4.1 界面布局实现 (8) 4.1.1 选择界面布局 (8) 4.1.2 游戏界面布局 (9) 4.2 游戏功能实现 (11) 4.2.1 难度选择 (11) 4.2.2 图片选择 (12) 4.2.3 步数和时间设置 (13) 4.2.4 拼图的实现 (14) 5 系统测试 (17) 5.1 Android仿真器介绍 (17)

5.2 功能模块测试 (17) 5.3 出现的错误及解决方案 (20) 6 总结与展望 (21) 参考文献 (22) 附录 (23) 致谢 (33)

基于Android益智拼图游戏设计 摘要 随着移动设备的日益普及,使用Android技术开发手机软件受到越来越多人的青睐。在此背景下,本课题开发了一款Android平台下的手机游戏——益智拼图。 本文首先对Android的研究背景,系统架构以及开发环境进行介绍,然后就玩家对游戏的需求进行一定的分析,最后运用Android技术实现拼图游戏的开发,并合理布局游戏界面,使游戏界面更加美观和人性化,实现了游戏的基本功能,最终可以让玩家享受拼图游戏的乐趣。 关键词:Android;拼图游戏;Activity;架构

拼图游戏平台设计

毕 业 论 文(设计) 题目拼图大世界专业计算机应用技术 姓名 年级 03计机高级工班 指导教师

前言 多媒体技术是当前计算机科学与技术领域的热点技术,它诞生于20世纪80年代,在20世纪90年代获得突破性的发展,并获得广泛的应用。多媒体技术使计算机具有综合处理文本、声音、视频、图形、图像的能力,它的迅速发展已经深刻影响、改变着人们的生活、工作方式。多媒体的应用丰富多彩,不仅涉及计算机的各应用领域,也涉及教育培训、电子出版、通信、文化娱乐等领域或行业。多媒体计算机技术正朝着高分辨率、高速度、简单化、标准化和智能化方向发展。 Authorware是功能强大的交互式多媒体软件,被广泛应用于多媒体教学和商业领域,在多媒体制作与发展领域有着举足轻重的地位。它能完美地结合文本、图形、音频、视频以及动画等素材,制作出精美的、跨媒体的学习软件、应用软件等,然后通过互联网、局域网或光盘等多种载体进行发布。基于以上原因,Authorware正在被越来越多的多媒体工作者使用。 拼图游戏相信大家都不会陌生,现在我们不妨利用Authorware来制作一个拼图游戏,借此切身体会Authorware 的强大交互设计。现在网络上有各式各样的拼图游戏,其中有用Authorware、flash、Animated Puzzles等做的拼图游戏,如Dreamweaver中有一个行为叫Drag layer (拖动层),用它也可以设计出拼图游戏。而在这里我要为大家做的是用Authorware制作拼图游戏。这个拼图游戏的特战在于,颜色鲜艳,采用静、动相结合的方式,在页面里加入了大量的flash 动画、GIF动态图片,从而令到页面更生动。还有一关于拼图的历史文化信息,游戏玩家可在闷时阅读。 希望大家在通过玩这个游戏,令大家情开朗、愉快,能让大家流连忘返。 - 2 -

课程设计与开发

课程设计与开发

任务导向式课程设计与开发方法培训 解决任何问题的核心是:学习成长改变 学习:要有终身学习的能力,也就是学力 成长:当你的成长速度跟不上爱人时,婚姻就出现问题 当你的成长速度跟不上学生时,教育就出现问题 当你的成长速度跟不上老板时,工作就出现问题 当你的成长速度跟不上下级时,管理就出现问题 当你的成长速度跟不上市场时,公司就出现问题 改变:改变才是最伟大的历练。 情商和平台:一根绳子可以卖五块,但绑在螃蟹上就值五十块,这就是平台。想成功先发疯,头脑简单往前冲。 进入课程: 小组讨论: 问题:任务完成过程中的知识点如何体现? 开发目标 信息化 标准定位 到底对学生有没有帮助? 一、课程开发是什么? 开发一门课,包含什么 为什么有这么多问题出现? 1.没有统一的方法论。 2.每一个任课教师永远站在局部,不知专业标准是什么。 3.其实课程开发的能力是教育部对每一个教师的要求。 二、为什么是企业的人来分享职业教育课程设计与开发? 1.我国职业教育面临的挑战 一是高校专业设置,人才培养方向与市场需求变化不同步

课程开发项目管理 团队、时间和预算是三个要素 (一)课程开发计划 团队、时间和预算 团队: 1.需要什么角色的人(项目经理、教学设计者、业务内容专家、图形美化师、文档开发者、种子讲师); 2.主要角色的职责与能力要求 游戏:拼图游戏 时间 阶段划分(时间配比):分析(20-25%)、设计(10-20%)、开发(25-40%)、验证(15-30%)、评估(5-10%)。 预算 实操练习: 任务:根据选定的课题,明确开发团队角色分工、细化开发进度,参照课程开发计划模板,完成课程开发计划 成果:《课程开发计划》海报

拼图游戏案例的设计

拼图游戏案例的设计 摘要:拼图游戏的设计,首先考虑窗口布局,因为在窗口的上部需要边界布局,而 那二十五个小按钮需要采用网格布局,因而直接将组件添加到Jframe窗口中是不可行的,可以通过将窗口上部和下部的组件分别添加到两个面板Jpanel中,将两个面板加到Jframe窗口中。然后实现图片的随机排放,通过循环生成图片正确摆放顺序的二维数组和图片随机摆放顺序的二维数组来实现。最后,实现图片的移动,通过两个按钮的行索引想减得绝对值与列索引想减得绝对值的和是否为1,来判断被点击按钮与空白按钮是否相邻,如果相邻,则令显示空白图片的按钮显示被单击按钮显示的图片,令被单击的按钮显示空白的图片。 关键字:Java软件拼图游戏Jpanel面板 引言:拼图游戏是一种弹性很好且耐玩的游戏,它可以启发智力及帮助其养成解决 事情的能力。玩拼图有助于手眼协调,它能训练和了解“部分”与“全部”的关系—可以知道许多的“部分”能拼凑出一个“全部”,以及“一个全部”是由“许多部分”所组成的。拼图平面组合的概念—积木是立体的组合,而拼图是一种平面组合的概念,在局限的2D范围内拼出一个物品,一个合乎与逻辑的东西。拼图游戏需要耐心的操作和手眼协调能力,只要一不协调就不能将数据块放在正确的位置。 一基础知识 JButton(按钮)组件:通过SetText(String text)方法设置按钮的标签文本,通过setIcon(Icon defaultIcon)方法设置按钮在默认状态下显示的图片。JButton组件只是在按下和释放两个状态之间进行切换,当Button按钮被点击时,会触发ActionEvent事件,此事件由ActionListener(事件监听器)接受并做处理,因而调用按钮的addActionListener(ActionEvent e)方法,为该按钮指定监听者。 Jlabel(标签)组件:Jlabel组件用来显示文本和图像,通过setText(String text)方法设置标签显示的文本,通过setIcon(Icon icon)方法设置标签显示图片。BorderLayout布局管理器:由BorderLayout类实现的布局管理器称为边界布局管理器,它的布局方式是将容器划分为五个部分,即NORTH(容器顶部)、WEST(容器左侧)、CENTER(容器中间)、EAST(容器右侧)、SOUTH(容器底部)。如果组件容器采用了边界布局管理器,在将组件添加到容器时,需要设置组件的显示位置,通过方法add(Component comp,Object constraints)添加并设置,该方法的第一个参数为欲添加的组件对象,第二个参数为组件的显示位置。 GridLayout布局管理器:由GridLayout类实现的布局管理器称为网格布局管理器,它的布局方式是将容器按照用户的设置平均划分成若干网,通过构造方法GridLayout(int rows,int cols)创建网格布局管理器对象是,参数rows用来设置网格的行数,参数cols用来设置网格的列数。 JPanel面板:如果将所有的组件都添加到Jframe窗体提供的默认组件容器中,则在一个界面中的所有组件只能采用一种布局方式,很难得到一个美观的界面,并且有些布局方式只能管理有限个组件。通过使用Jpanel面板,首先将面板和组件添加到Jframe窗体中,然后再将子面板和组件添加到上级面板中,这样就可以向面板中添加无数个组件,并且通过对每个面板采用不同的布局管理器,解决众多组件间的布局问题。Jpanel面板默认采用FlowLayout布局管理器。 Java程序的Application类型:特点是“Java应用”是可以独立运行的java程序。需要经过三个步骤:编写源文件,一个java应用程序必须有一个类含有public static void main (String args[])方法,这个类是应用程序的主类,源文件的名字和主类的名字完全相同。编译java源程序,创建源文件后,就要使用编译器(javac.exe)对其进行编译。运行java程序,从主类的main方法开始执行。 二拼图游戏设计思路与步骤 题目要求:所谓拼图游戏,是指将一个完整的图片分割成若干个规则的小图片,然后将这些小图片随机地拼接在一起,然后由玩家按照原图重新拼接出正确的图片。程序运行界面如下图所示,左上角的图片为供玩家参考的原图,下面每一个小网格都是一个小图片,在开始游戏时这些小图片是杂乱无章的,在图中有一个网格是空白的,玩家可以通过单击与其相邻的网格,即位于其上、下、左、右的四个网格,将被单击网格中显示的小图片移动到空白网格中,然后被单击的网格将变为空白,经过这样反复的移动,将会将图片重新拼接成原图像。当点击按钮“下一局”时,每个移动模块中的图片自动随机更新。 第 1 页共6 页第 2 页共6 页

相关文档
最新文档