广东工程职业技术学院1毕业综合项目(2016届)2015年12月15日项目类别:AndroidAPPInventor项目名称:记忆力大考验专业名称:计算机应用技术姓名:刘晓峰学号:1301030202班级:2013级计算机应用技术B班指导教师:陆晓梅广东工程职业技术学院2摘要AppInventor原是Google实验室(GoogleLab)的一个子计划,由一群Google工程师和勇于挑战的Google使用者共同参与设计完成。GoogleAppInventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成您的Android程式。除此之外它也正式支持乐高NXT机器人,对于Android初学者或是机器人开发者来说是一大福音。因为对于想要用手机控制机器人的使用者而言,他们不大需要太华丽的界面,只要使用基本元件例如按钮、文字输入输出即可。随着智能手机一步步走进普通人的生活,它将成为人们娱乐的主要设备。因此,手机的娱乐应用服务将会有很大的发展空间,手机小游戏就是其中之一。记忆游戏是一款益智类游戏,平时在公车地铁无聊的时间可以动动手,活跃一下思维,为生活增添一点乐趣。本文就在分析讨论AndroidAPPinventor平台的基础上,开发出一款益智类的记忆力小游戏。关关键键词词::AAnnddrrooiiddAAPPPPiinnvveennttoorr;;游游戏戏;;记记忆忆力力广东工程职业技术学院3目录第一章绪论....................................................................41.1项目背景....................................................................4第二章项目需求分析..............................................................52.1界面需求....................................................................52.2程序结构图和流程图..........................................................62.3功能需求....................................................................62.4运行环境需求................................................................7第三章APPInventor代码编写.....................................................83.1创建按钮列表................................................................83.2让按钮显示背面图案.........................................................103.3创建图片列表..............................................................103.4随机显示正面图案...........................................................113.5处理按钮点击事件...........................................................113.6闪现计时器的计时事件处理程序..............................................123.7控制游戏时长..............................................................133.8设计游戏结尾...............................................................133.9处理对话框的按钮选择......................................................143.10创建游戏初始化过程.......................................................143.11代码整理..................................................................15第四章游戏测试.................................................................16第五章总结.....................................................................17致谢............................................................................18参考文献........................................................................19广东工程职业技术学院4第一章绪论1.1项目背景当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有四个手机操作系统,苹果的IOS,诺基亚的塞班,微软的WindowsMobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性记忆力小游戏呢?能的,谷歌AndroidAPPinventor系统就能做到。本文的项目就是基于谷歌AndroidAPPInventor平台的记忆力小游戏。AppInventor原是Google实验室(GoogleLab)的一个子计划,由一群Google工程师和勇于挑战的Google使用者共同参与设计完成。GoogleAppInventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成您的Android程式。除此之外它也正式支持乐高NXT机器人,对于Android初学者或是机器人开发者来说是一大福音。因为对于想要用手机控制机器人的使用者而言,他们不大需要太华丽的界面,只要使用基本元件例如按钮、文字输入输出即可。AppInventor2012年1月1日移交给麻省理工学院行动学习中心,于3月4日公布使用。开发一个AppInventor程式就从您的浏览器开始,您首先要设计程序的外观。接着是设定程序的行为,这部分就像玩乐高积木一样简单有趣。最后只要将手机与电脑联接,刚出炉的程序就会出现在您的手机上了。随着计算机的广泛运用,手机市场的迅速发展,各种益智类小游戏也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机小游戏也紧跟着发展起来,但是很多游戏一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。广东工程职业技术学院5第二章项目需求分析2.1界面需求屏幕被划分为两个部分:在屏幕顶部,使用了水平布局组件,内部放置了显示分数的标签和显示游戏剩余时间的数字滑动条;在屏幕的中央,使用了4X4表格布局组件,共16个单元格,每个单元格中放置一个按钮,来实现点击翻牌功能。广东工程职业技术学院62.2程序结构图和流程图(1)记忆游戏的流程图(2)程序组件功能表2.3功能需求1.时间因素:限制游戏时长(如60秒),剩余时间是最后得分的奖励因数;2.空间因素:用户界面上有16张卡片,排成4×4的方阵,显示背面图案;16张卡片的正面图案为8对,可以两两配对;广东工程职业技术学院73.游戏操作——翻牌:玩家先翻开一张卡片,再翻开另一张卡片,如果两张卡片的正面图案相同,则两张卡片保持翻开状态;如果两张卡片的正面图案不同,两张卡片将闪现片刻,然后反转回去,显示背面图案。4.计分规则:每翻开一对卡片得10分;如果在规定时间内翻开所有卡片,满分为80分;剩余游戏时间×10作为奖励得分,与翻牌得分一同计入总分;如果在规定时间内没有翻开所有卡片,则不计分;5.历史记录:首次游戏得分被保存在手机中,在每次游戏完成时,将本次得分与历史记录进行比较,并保存高的得分;玩家可以清除游戏成绩的历史记录;6.退出游戏:玩家在完成一轮游戏后,可以选择退出游戏。2.4运行环境需求操作系统:Android手机基于Linux操作系统支持环境:Android1.5–更高版本开发环境:MITAppInventor2测试版广东工程职业技术学院8第三章APPInventor代码编写3.1创建按钮列表如果把编写软件比喻为烹制一道菜肴,那么用户界面上的元素就相当于制作这道菜肴的全部食材;当材料备齐之后,就可以考虑进入烹制过程了。就软件而言,当用户界面设计完成之后,就可以开始编写代码了。我们很自然地会问,从哪里开始呢?无论是对于初学者,还是对于有经验的程序员,都无法回避这个问题。通常的做法是,沿着游戏的时间顺序来编写程序。但是对于初学者来说,也可以从最简单的功能做起,例如,先设置按钮的背面图案,然后针对这个按钮,当点击它时,让按钮显示正面图案;然后再考虑第二个按钮,当点击第二个显示背面图案的按钮时,如何处理可能出现的两种情况:两张卡片的图案相同或不同。这里我们采用通常的做法,首先来编写屏幕初始化程序,在这段程序中,最终要将8对(16张)不同的图案分配给16个按钮。1、创建按钮列表。广东工程职业技术学院9首先我们引入一个新的概念——组件对象。我们可以在编程视图中,随意点击一个项目中的组件,打开该组件的代码块抽屉,你会发现,在代码块的最后一行,总有一个与该组件同名的代码块,这个代码块代表了这个组件本身,我们称之为组件对象,对于按钮来说,就是按钮对象。首先声明一个全局变量按钮列表,并编写一个创建按钮列表过程,在该过程中,完成列表项的设置,然后在屏幕初始化程序中调用该过程。这中,完成列表项的设置,然后在屏幕初始化程序中调用该过程。这个列表的神奇之处稍后你就能有所体会。广东工程职业技术学院103.2让按钮显示背面图案3.3创建图片列表声明一个全局变量图片列表,用来保存所有正面图案的图片文件名。此处,我们在声明全局变量图片列表的同时,创建了该列表,与之前按钮列表的创建相比较,我们可以更加深入地理解普通数据与组件对象类数据之间的区别。。广东工程职业技术学院113.4随机显示正面图案3.5处理按钮点击事件广东工程职业技术学院123.6闪现计时器的计时事件处理程序广东工程职业技术学院133.7控制游戏时长3.8设计游戏结尾显示游戏得分;显示历史最高得分;清除历史记录;返回游戏;退出游戏广东工程职业技术学院143.9处理对话框的按钮选择3.10创建游戏初始化过程生成新的随机图案列表让所有卡片显示背面图案让全局变量翻牌对数=0让全局变量剩余时间=60让滑块回到起始点得分显示为0启动游戏计时器,开始新的一轮游戏。广东工程职业技术学院153.11代码整理广东工程职业技术学院16第四章游戏测试经过前一阶段的设计与开发,本次设计的基于Android平台的记忆小游戏基本结束。为了尽早发现软件的错误和漏洞,使软件能够长期、稳定的运行下去,下面将对本系统的主要部分进行软件测试。测试环境:硬件环境为普通计算机配置后者2.3版本以上的Android手机。系统关键测试点:点击按钮是否能正常显示图片