




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3G手机软件开发课程设计题目ANDROID平台数独游戏的设计与实现院、系计算机信息与技术系学科专业软件工程学生姓名XXX学号B10060XXX指导教师XXXX2013年06月05日目录一、绪论31课题内容32课题意义33ANDROID系统介绍和发展趋势4二、需求分析41任务概述42功能需求53性能需求5三、概要设计61数据库设计62功能设计63系统的结构设计64开发工具的选择7四、详细设计81主界面设计811界面812主要代码82游戏界面设计1021界面1022主要代码103通关界面1331界面1332主要代码134排行榜界面1641界面1642主要代码175数独简介界面1851界面1852主要代码18五、软件实现191主界面实现(见图41)192游戏界面实现(见图42)193通关界面实现(见图43、图44)194排行榜界面实现(见图45)195数独简介界面实现(见图46)19六、软件测试191测试策略192测试内容2021首界面主要测试内容2022游戏界面主要测试内容2123游戏结束界面主要测试内容2124排行榜界面测试内容2125背景音乐测试内容213测试结论21七、总结22八、参考文献22附录(部分代码)23一、绪论1课题内容开发一款ANDROID平台的数独游戏,在教材(ANDROID基础教程)数独游戏的基础上进行功能扩展。扩展部分的功能要求如下(1)设计游戏关口不低于3关。当用户从第一关通过后,可以选择退出或游戏进入第二关运行,难度按照关口增加递增;(2)每关不少于5种初始局,且能随机选择其中一局运行;(3)用户每次通关播放动画(或音频、图片),并显示用户当前的分数;(4)程序存储得分在前5名用户的得分;2课题意义(1)运用软件工程的原理和方法来指导软件的设计与开发,既是对本学期刚学习的软件工程课程的复习,同时也是一次将理论应用到实践中的实战演练,非常有助于我们提高自己的分析问题、解决问题以及动手方面的能力;(2)通过对数独游戏的设计与实现,可以加深我们对ANDROID了解和认识,使我们对ANDROID编程有一个系统的掌握,为将来的ANDROID游戏或者应用软件的开发打下坚实基础。3ANDROID系统介绍和发展趋势ANDROID是首款基于LINUX平台的开放源代码的操作系统,是目前市面上移动设备最为火热的操作系统,其采用LINUX内核,由GOOGLE公司和开放手机联盟领导及开发。ANDROID是软件堆层(软件叠层)的架构,主要分为三部分底层以LINUX内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以JAVA作为编写程序的一部分。ANDROID手机系统的一个很大的优势在于其开放性和服务免费。ANDROID是一个对第三方软件完全开放的平台,开发者在为其开发程序软件时拥有更大的自由度。ANDROID突破了IPHONE等只能添加为数不多的固定软件的枷锁;同时与WINDOWSMOBILE、SYMBIAN等厂商不同,ANDROID操作系统免费向开发人员提供。ANDROID项目目前正从手机运营商、厂商、开发者和消费者那里获得大力支持。安卓在全球市场的成长壮大,塞班市场份额不断下跌已成不争事实。安卓操作系统发展迅猛主要得益于免费、开源和良好产业运作策略,这三点为安卓在智能手机市场赢得更多的发展机遇。系统的免费让更多的厂商加入,推动了份额的上升;代码的开源让更多的开发者进入应用开发;应用的丰富吸引了更多用户选择,这也是谷歌值得众多厂商学习的地方。此外,谷歌通过OHA联合众多厂商进行系统研发,不断更新版本,将系统应用推广到更多的终端产品中,确保用户体验持续改善。二、需求分析1任务概述利用所学知识和通过一些拓展开发一款ANDROID平台的数独游戏。数独是一种源自18世纪末的瑞士,后在美国发展、并在日本得以发扬光大的数字谜题,是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9X9盘面上给出的已知数字和解题帮助推理出所有剩余空格的数字,并填入19的数字,使其满足每一行、每一列、每一个粗线宫内的数字均含19且不重复。每一道合格的数独谜题都有且仅有一个唯一答案,推理方法也以此为基础任何无解或者多解的题目都是不合格的。这种游戏全面考验玩家的观察能力和推理能力,虽然玩法不是很难,但数字排列方式却千变万化,所以不少教育者认为数独是训练头脑的绝佳方式。2功能需求本程序需要实现选择难度关卡选择,继续上一次未完成游戏,查看排行榜以及退出游戏等一系列基本功能。扩展部分的功能要求如下(1)设计游戏关口不低于3关。当用户从第一关通过后,可以选择退出或游戏进入第二关运行,难度按照关口增加递增;(2)每关不少于5种初始局,且能随机选择其中一局运行;(3)用户每次通关播放动画(或音频、图片),并显示用户当前的分数;(4)程序存储得分在前5名用户的得分。3性能需求(1)处理的准确性和及时性游戏处理的准确性和及时性是游戏的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息处理的需求。(2)软件的易用性该游戏能让用户很简单的操作,使用户能在很快的时间内学会玩该游戏,可以便于用户之间进行思维的比拼。(3)系统的响应速度游戏在用户使用过程中的响应速度要快,达到实时要求,以及时反馈信息。能正确的反应用户的做题时间。(4)解题时间因为处理数据需要不同的算法,算法的好坏在一定程度上就决定了软件的成败,接替时间控制要达到一定的要求,只有不断的优化算法才能降低解题的时间从而加强软件的快速响应从而更好的满足客户的需求。三、概要设计1数据库设计本程序的数据库名为RANKDB,其中的数据表名为MYRANK,数据内容具体如表31所示。表31MYRANK属性数据类型说明IDINTEGER名次NAMEVARCHAR10用户名TIMEINTEGER用时2功能设计(1)游戏开始功能通过难度关卡的选择,调用不同游戏局开始新的游戏;(2)游戏继续功能启动因玩家有事或其他原因而暂停的游戏局;(3)英雄榜功能通过调用数据库显示前五名玩家的名次、姓名和用时;(4)音乐播放功能进入游戏主界面、开始游戏以及顺利完成一局游戏或者通关,播放不同的背景音乐;(5)数据存储(数据库)功能存储玩家的用时、姓名、名次等相关信息;(6)计时功能记录玩家完成一局游戏所花费的时间;(7)数独简介功能对数独进行简要的介绍,同时对游戏的玩法进行讲解和说明;(8)退出程序功能可以顺利退出游戏。3系统的结构设计系统结构为进入主界面显示游戏界面,选择菜单分为五项功能继续之前的游戏功能、游戏开始功能,查看排行榜功能,数独简介功能以及退出功能。具体系统结构如图31所示。数独(SUDOKU)继续之前的挑战新的征程关于数独退出江湖简单英雄榜中等困难图31系统结构图4开发工具的选择本软件采用ANDROID嵌入式数据库引擎SQLITE创建数据库,开发工具采用的是ECLIPSE。如图32所示。图33ECLIPSE四、详细设计1主界面设计主界面作为游戏的启动界面,用于显示软件的基本功能,使用户对软件有一个整体了解,主界面主要文件名为“SUDOKUJAVA”,主界面布局文件名为“MAINXML”。11界面主界面如图41所示。图41数独主界面12主要代码PUBLICVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATESETCONTENTVIEWRLAYOUTMAIN/SETUPCLICKLISTENERSFORALLTHEBUTTONSVIEWCONTINUEBUTTONFINDVIEWBYIDRIDCONTINUE_BUTTONCONTINUEBUTTONSETONCLICKLISTENERTHISVIEWNEWBUTTONFINDVIEWBYIDRIDNEW_BUTTONNEWBUTTONSETONCLICKLISTENERTHISVIEWABOUTBUTTONFINDVIEWBYIDRIDABOUT_BUTTONABOUTBUTTONSETONCLICKLISTENERTHISVIEWEXITBUTTONFINDVIEWBYIDRIDEXIT_BUTTONEXITBUTTONSETONCLICKLISTENERTHISVIEWRANKBUTTONFINDVIEWBYIDRIDRANK_BUTTONRANKBUTTONSETONCLICKLISTENERTHISPUBLICVOIDONCLICKVIEWVSWITCHVGETIDCASERIDCONTINUE_BUTTONSTARTGAMEGAMEDIFFICULTY_CONTINUEBREAKCASERIDABOUT_BUTTONINTENTINEWINTENTTHIS,ABOUTCLASSSTARTACTIVITYIBREAKCASERIDNEW_BUTTONOPENNEWGAMEDIALOGBREAKCASERIDRANK_BUTTONINTENTTNEWINTENTTHIS,RANKCLASSSTARTACTIVITYTLOGD“TTT“,“INTENTGO“BREAKCASERIDEXIT_BUTTONFINISHBREAK2游戏界面设计游戏界面是数独游戏的开始界面,显示了正在进行的某一局游戏。游戏界面主要文件名为“GAMEJAVA”和“PUZZLEVIEWJAVA”。21界面游戏界面如图42所示。图42数独游戏界面22主要代码PUBLICCLASSGAMEEXTENDSACTIVITYPRIVATESTATICFINALSTRINGTAG“SUDOKU“PUBLICSTATICFINALSTRINGKEY_DIFFICULTY“ORGEXAMPLESUDOKUDIFFICULTY“PRIVATESTATICFINALSTRINGPREF_PUZZLE“PUZZLE“PROTECTEDSTATICSTRINGRECORDTIME“RECORDTIME“/记录时间PRIVATESTATICINTCONTINUETIMEPUBLICSTATICFINALINTDIFFICULTY_EASY0PUBLICSTATICFINALINTDIFFICULTY_MEDIUM1PUBLICSTATICFINALINTDIFFICULTY_HARD2PROTECTEDSTATICFINALINTDIFFICULTY_CONTINUE1INTTIME0/定义定时器INTRDM/生成开局数组随机数STATICINTSEC0/计算计时器分秒PRIVATEINTPUZZLENEWINT99/用一个数组来存下面的每个数字PRIVATEFINALSTRINGEASYPUZZLE“360000000004230800000004200“070460003820000014500013020“001900000007048300000000045“PRIVATEFINALSTRINGMEDIUMPUZZLE“650000070000506000014000005“007009000002314700000700800“500000630000201000030000097“PRIVATEFINALSTRINGHARDPUZZLE“009000000080605020501078000“000000700706040102004000000“000720903090301080000000600“PRIVATEPUZZLEVIEWPUZZLEVIEWPROTECTEDVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATELOGDTAG,“ONCREATE“RDMINTMATHRANDOM1005/生成随机数获得数组布局中的一种/MATHRANDOM是令系统随机选取01之间的14位的随机数。/通过调用GETPUZZLEDIFF来启动不同难度级别INTDIFFGETINTENTGETINTEXTRAKEY_DIFFICULTY,DIFFICULTY_EASY/获取ACTIVITY传来的整形数据PUZZLEGETPUZZLEDIFF/PUZZLE数组的值来自于GETPUZZLEDIFF返回的值CALCULATEUSEDTILESPUZZLEVIEWNEWPUZZLEVIEWTHISSETCONTENTVIEWPUZZLEVIEWPUZZLEVIEWREQUESTFOCUS/用于指定屏幕内的焦点VIEWGETINTENTPUTEXTRAKEY_DIFFICULTY,DIFFICULTY_CONTINUEGETINTENTPUTEXTRARECORDTIME,THISTIME/获得用户用时PRIVATEINTGETPUZZLEINTDIFFSTRINGPUZSWITCHDIFFCASEDIFFICULTY_CONTINUEPUZGETPREFERENCESMODE_PRIVATEGETSTRINGPREF_PUZZLE,EASYPUZZLERDM/EASYPUZZLETIMEGETPREFERENCESMODE_PRIVATEGETINTRECORDTIME,CONTINUETIME/读取保存的用户用时BREAKCASEDIFFICULTY_HARDPUZHARDPUZZLERDMBREAKCASEDIFFICULTY_MEDIUMPUZMEDIUMPUZZLERDMBREAKCASEDIFFICULTY_EASYDEFAULTPUZEASYPUZZLERDMBREAKRETURNFROMPUZZLESTRINGPUZPRIVATEVOIDCALCULATEUSEDTILESFORINTX0XMNRESTARTBUTTONFINDVIEWBYIDRIDRESTARTOUTGAMEBUTTONFINDVIEWBYIDRIDOUTGAMESCORE1TEXTVIEWFINDVIEWBYIDRIDSCORE1RESTARTSETONCLICKLISTENERTHISOUTGAMESETONCLICKLISTENERTHISSCORE1000S10SCORE1SETTEXTSCORE“分“/SETTEXTSTRINGVALUEOFSCORE/恭喜您破纪录了ELSESETCONTENTVIEWRLAYOUTGAMEOVER1MYTIMETEXTVIEWFINDVIEWBYIDRIDMYTIMEMYNAMEEDITTEXTFINDVIEWBYIDRIDMYNAMEORDERBUTTONBUTTONFINDVIEWBYIDRIDORDERBUTTONORDERBUTTONSETONCLICKLISTENERTHISMYTIMESETTEXTS“秒“PUBLICVOIDONCLICKVIEWVSWITCHVGETIDCASERIDRESTARTNUMNUM1IFNUM2MPSTOPTOASTTOASTTOASTMAKETEXTTHIS,“恭喜您顺利通过三关,完成了本关卡的挑战“,2500/DURATION显示时间TOASTSETGRAVITYGRAVITYCENTER,0,0/SETGRAVITY起点位置,水平向右位移,垂直向下位移TOASTSHOWINTENTTTNEWINTENTTHIS,SUDOKUCLASSSTARTACTIVITYTTBREAKELSEINTENTTNEWINTENTTHIS,GAMECLASSSTARTACTIVITYTBREAKCASERIDOUTGAMEMPSTOPINTENTTTNEWINTENTTHIS,SUDOKUCLASSSTARTACTIVITYTTBREAKCASERIDORDERBUTTON/传输数据到数据库IFMYNAMEGETTEXTLENGTHTHIS,/上下文对象/列表显示的布局ANDROIDRLAYOUTSIMPLE_LIST_ITEM_1,NEWMYTABCURSOR/实例化查询/取得SQLITEDATABASE对象THISHELPERGETREADABLEDATABASEFIND/调用FIND方法,返回LISTTHISMYLAYOUTADDVIEWLISTVIEW5数独简介界面简介界面是点击“关于数独”弹出的界面,这是显示的是数独的简要介绍以及对游戏的玩法进行讲解和说明的文字。简介界面的文件名为“ABOUTJAVA”,布局文件为“ABOUTXML”。51界面数独简介界面如图46所示。图46排行榜界面52主要代码PUBLICCLASSABOUTEXTENDSACTIVITYOVERRIDEPROTECTEDVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATESETCONTENTVIEWRLAYOUTABOUT五、软件实现1主界面实现(见图41)2游戏界面实现(见图42)3通关界面实现(见图43、图44)4排行榜界面实现(见图45)5数独简介界面实现(见图46)六、软件测试1测试策略以黑盒测试为主,白盒测试为辅,通过简单的查看软件内部代码,了解软件的运行状态。(1)、易用性测试测试目标测试游戏是否容易进入,显示速度,设计是否合理方法进行手工测试调整不规范的地方。完成标准测试成功,测试能达到基本要求并且发现的问题全部解决需考虑的特殊事项测试过程中可能出现手机内存状态不稳定。(2)、功能测试测试目标测试所有功能是否已正常实现。数据精确各数据类型的输入时统计精确。方法对测试对象的功能进行测试,调整不规范的地方。进行手工测试。完成标准测试成功,测试用例通过并且发现的严重错误全部解决需考虑的特殊事项测试过程中可能出现系统版本不兼容。(3)、性能测试测试目标核实游戏在用户访问多数据时性能的稳定性,不造成系统崩溃或相关的异常现象方法负荷测试和压力测试完成标准系统能满足用户需求中所要求的性能要求需考虑的特殊事项暂无(4)、配置/兼容性测试测试目标核实系统在不同的软件和硬件配置中运行稳定方法手工测试和工具测试相结合完成标准在各种不同ANDROID版本、不同类型ANDROID手机均能正常实现功能需考虑的特殊事项暂无(5)、安全性测试测试目标核实用户是否只能操作其拥有权限能操作的功能,核实只有具备访问权限的管理员才能访问系统方法手工测试和工具测试相结合完成标准执行各种非法操作无安全漏洞且游戏使用正常需考虑的特殊事项暂无2测试内容21首界面主要测试内容按钮是否响应,是否能弹出相应对话框。22游戏界面主要测试内容(1)是否能正确弹出棋局;(2)棋盘是否正常显示;(3)点击界面是否弹出当前位置的小键盘,是否有数字提示;(4)数字是否能正确填入,填写出错是否响应错误提示。23游戏结束界面主要测试内容(1)是否正确弹出“通过提示”对话框;(2)图片是否正常显示,得分显示是否正确;(3)当玩家用时低于数据库中的记录时是否能弹出“破纪录”对话框,并正确显示玩家的用时;(4)输入用户信息时合法输入,能否正常存入数据库并再次弹出“通关提示”对话框;非法输入,系统能否辨别并作出响应;(5)当玩家成功通过三大关卡中的某一个三局及其以上游戏,是否能弹出相应提示并结束。24排行榜界面测试内容(1)是否能正常调用数据库;(2)信息是否正确显示。25背景音乐测试内容(1)打开游戏首界面、进行游戏、游戏通关是否播放不同背景音乐;(2)点击“返回”退出游戏,是否音乐停止。3测试结论(1)测试目标基本完成;(2)测试全部通过。此次测试是将系统各功能模块进行逐一的检查,对系统各功能的正常运行做了充分的测试。输入数据库数据的检测功能以及出错处理情况。但由于功能模块较多,采用功能测试设计的测试用例比较多,测试花费了一定的时间。七、总结在做课程设计之前,我对ANDROID知识的掌握是很有限的,主要来自于课堂上老师授予的,而自己在课后花的时间相对较少。因此有些知识记得不清楚甚至不知道,这就在很大程度上给本次课程设计带来了很多麻烦,如时间的多余开销,程序编写的效率低下,代码显得长而复杂等。在本次课程设计的过程中,每一步功能的实现都让我感到无比高兴,哪怕只是一小步。因为每一小点的成功都能让我学到并掌握许多的知识。SQLITE数据库的实现是一个非常艰难的过程,但成功连接的那一刻真的是难以言说的激动。通过TIMETHREAD类实现游戏的计时,GAMEOVER类实现游戏通关的提示与跳转,RANK类将存入数据库中的记录显示输出等功能的实现都是本次课程设计中令我感到骄傲的地方,也是收获最多的地方。通过这次课程设计,让我意识到自己和周围的同学存在着很大的差距,小到ANDROID中语句的定义,我都需要重新去学习。因此我比别人花的更多的时间,浪费了更多的精力,但这些都是值得的,因为这一过程中我学到了许多知识。通过本次课程设计让我进一步熟悉了ANDROID的编程,进一步掌握各种程序调试方法,进一步了解和学习了良好的程序设计风格,受益匪浅本次课程设计的基本成功是在老师的辛勤帮助下才得以实现,在此感谢张琳老师给我提供了这一个实践动手的机会以及给予我们的悉心指导和帮助,同时也感谢帮助我的各位同学,因为有他们的提醒和建议,才有了我本次课程设计的成功。八、参考文献1EDBURNETTE著,田俊静,张波,黄湘清译ANDROID基础教程(第3版修订版)M北京人民邮电出版社20112NICOLASGRAMLICH,张劲锋ANDROID编程入门教程ANDBOOK中文版M北京人民邮电出版社20103吴亚峰,索依娜ANDROID核心技术与实例详解M北京电子工业出版社20104ROGERSCADENHEAD,LAURALEMAY21天学通JAVA2M北京民邮电出版社20045张海藩软件工程导论第五版M北京清华大学出版社,20086李钟尉,周小彤,陈丹丹JAVA从入门到精通第2版M北京清华大学出版社,20107郭宏志ANDROID应用开发详解电子工业出版社8MARS千锋3G学院ANDROID游戏开发教程DB/OLHTTP/WWWMOBILETRAINORG/附录(部分代码)主程序代码IMPORTORGEXAMPLESUDOKUGAMEIMPORTANDROIDAPPACTIVITYIMPORTANDROIDAPPALERTDIALOGIMPORTANDROIDAPPALERTDIALOGBUILDERIMPORTANDROIDCONTENTDIALOGINTERFACEIMPORTANDROIDCONTENTINTENTIMPORTANDROIDOSBUNDLEIMPORTANDROIDUTILLOGIMPORTANDROIDVIEWKEYEVENTIMPORTANDROIDVIEWMENUIMPORTANDROIDVIEWMENUINFLATERIMPORTANDROIDVIEWMENUITEMIMPORTANDROIDVIEWVIEWIMPORTANDROIDVIEWVIEWONCLICKLISTENERPUBLICCLASSSUDOKUEXTENDSACTIVITYIMPLEMENTSONCLICKLISTENERPRIVATESTATICFINALSTRINGTAG“SUDOKU“PUBLICVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATESETCONTENTVIEWRLAYOUTMAIN/SETUPCLICKLISTENERSFORALLTHEBUTTONSVIEWCONTINUEBUTTONFINDVIEWBYIDRIDCONTINUE_BUTTONCONTINUEBUTTONSETONCLICKLISTENERTHISVIEWNEWBUTTONFINDVIEWBYIDRIDNEW_BUTTONNEWBUTTONSETONCLICKLISTENERTHISVIEWABOUTBUTTONFINDVIEWBYIDRIDABOUT_BUTTONABOUTBUTTONSETONCLICKLISTENERTHISVIEWEXITBUTTONFINDVIEWBYIDRIDEXIT_BUTTONEXITBUTTONSETONCLICKLISTENERTHISVIEWRANKBUTTONFINDVIEWBYIDRIDRANK_BUTTONRANKBUTTONSETONCLICKLISTENERTHISPROTECTEDVOIDONRESUMESUPERONRESUMEMUSICPLAYTHIS,RRAWMAINPROTECTEDVOIDONPAUSESUPERONPAUSEMUSICSTOPTHISPUBLICVOIDONCLICKVIEWVSWITCHVGETIDCASERIDCONTINUE_BUTTONINTENTCNEWINTENTTHIS,GAMECLASSCPUTEXTRAGAMEKEY_DIFFICULTY,1STARTACTIVITYCBREAKCASERIDABOUT_BUTTONINTENTINEWINTENTTHIS,ABOUTCLASSSTARTACTIVITYIBREAKCASERIDNEW_BUTTONOPENNEWGAMEDIALOGBREAKCASERIDRANK_BUTTONINTENTTNEWINTENTTHIS,RANKCLASSSTARTACTIVITYTLOGD“TTT“,“INTENTGO“BREAKCASERIDEXIT_BUTTONEXITBREAKPUBLICBOOLEANONCREATEOPTIONSMENUMENUMENUSUPERONCREATEOPTIONSMENUMENUMENUINFLATERINFLATERGETMENUINFLATERINFLATERINFLATERMENUMENU,MENURETURNTRUEPUBLICBOOLEANONOPTIONSITEMSELECTEDMENUITEMITEMSWITCHITEMGETITEMIDCASERIDSETTINGSSTARTACTIVITYNEWINTENTTHIS,PREFSCLASSRETURNTRUERETURNFALSE/ASKTHEUSERWHATDIFFICULTYLEVELTHEYWANT/PRIVATEVOIDOPENNEWGAMEDIALOGNEWALERTDIALOGBUILDERTHISSETTITLERSTRINGNEW_GAME_TITLESETITEMSRARRAYDIFFICULTY,NEWDIALOGINTERFACEONCLICKLISTENERPUBLICVOIDONCLICKDIALOGINTERFACEDIALOGINTERFACE,INTISTARTGAMEISHOW/STARTANEWGAMEWITHTHEGIVENDIFFICULTYLEVEL/PRIVATEVOIDSTARTGAMEINTILOGDTAG,“CLICKEDON“IINTENTINTENTNEWINTENTSUDOKUTHIS,GAMECLASSINTENTPUTEXTRAGAMEKEY_DIFFICULTY,ISTARTACTIVITYINTENTPUBLICVOIDEXITALERTDIALOGBUILDERBUILDERNEWBUILDERSUDOKUTHISBUILDERSETMESSAGE“确定要退出吗“BUILDERSETTITLE“提示“BUILDERSETPOSITIVEBUTTON“确认“,NEWANDROIDCONTENTDIALOGINTERFACEONCLICKLISTENERPUBLICVOIDONCLICKDIALOGINTERFACEDIALOG,INTWHICHDIALOGDISMISSANDROIDOSPROCESSKILLPROCESSANDROIDOSPROCESSMYPIDBUILDERSETNEGATIVEBUTTON“取消“,NEWANDROIDCONTENTDIALOGINTERFACEONCLICKLISTENERPUBLICVOIDONCLICKDIALOGINTERFACEDIALOG,INTWHICHDIALOGDISMISSBUILDERCREATESHOW游戏运行代码IMPORTANDROIDAPPACTIVITYIMPORTANDROIDAPPDIALOGIMPORTANDROIDCONTENTINTENTIMPORTANDROIDOSBUNDLEIMPORTANDROIDUTILLOGIMPORTANDROIDVIEWGRAVITYIMPORTANDROIDWIDGETTOASTPUBLICCLASSGAMEEXTENDSACTIVITYPRIVATESTATICFINALSTRINGTAG“SUDOKU“PUBLICSTATICFINALSTRINGKEY_DIFFICULTY“ORGEXAMPLESUDOKUDIFFICULTY“PRIVATESTATICFINALSTRINGPREF_PUZZLE“PUZZLE“PROTECTEDSTATICSTRINGRECORDTIME“RECORDTIME“/记录时间PRIVATESTATICINTCONTINUETIMEPUBLICSTATICFINALINTDIFFICULTY_EASY0PUBLICSTATICFINALINTDIFFICULTY_MEDIUM1PUBLICSTATICFINALINTDIFFICULTY_HARD2PROTECTEDSTATICFINALINTDIFFICULTY_CONTINUE1INTTIME0/定义定时器INTRDM/生成开局数组随机数STATICINTSEC0/计算计时器分秒PRIVATEINTPUZZLENEWINT99/用一个数组来存下面的每个数字PRIVATEFINALSTRINGEASYPUZZLE“360000000004230800000004200“070460003820000014500013020“001900000007048300000000045“PRIVATEFINALSTRINGMEDIUMPUZZLE“650000070000506000014000005“007009000002314700000700800“500000630000201000030000097“PRIVATEFINALSTRINGHARDPUZZLE“009000000080605020501078000“000000700706040102004000000“000720903090301080000000600“PRIVATEPUZZLEVIEWPUZZLEVIEWPROTECTEDVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATELOGDTAG,“ONCREATE“RDMINTMATHRANDOM1005/生成随机数获得数组布局中的一种/MATHRANDOM是令系统随机选取01之间的14位的随机数。/通过调用GETPUZZLEDIFF来启动不同难度级别INTDIFFGETINTENTGETINTEXTRAKEY_DIFFICULTY,DIFFICULTY_EASY/获取ACTIVITY传来的整形数据PUZZLEGETPUZZLEDIFF/PUZZLE数组的值来自于GETPUZZLEDIFF返回的值CALCULATEUSEDTILESPUZZLEVIEWNEWPUZZLEVIEWTHISSETCONTENTVIEWPUZZLEVIEWPUZZLEVIEWREQUESTFOCUS/用于指定屏幕内的焦点VIEWGETINTENTPUTEXTRAKEY_DIFFICULTY,DIFFICULTY_CONTINUEGETINTENTPUTEXTRARECORDTIME,THISTIME/获得用户用时PRIVATEINTGETPUZZLEINTDIFFSTRINGPUZSWITCHDIFFCASEDIFFICULTY_CONTINUEPUZGETPREFERENCESMODE_PRIVATEGETSTRINGPREF_PUZZLE,EASYPUZZLERDM/EASYPUZZLETIMEGETPREFERENCESMODE_PRIVATEGETINTRECORDTIME,CONTINUETIME/读取保存的用户用时BREAKCASEDIFFICULTY_HARDPUZHARDPUZZLERDMBREAKCASEDIFFICULTY_MEDIUMPUZMEDIUMPUZZLERDMBREAKCASEDIFFICULTY_EASYDEFAULTPUZEASYPUZZLERDMBREAKRETURNFROMPUZZLESTRINGPUZPRIVATEVOIDCALCULATEUSEDTILESFORINTX0XMNRESTARTBUTTONFINDVIEWBYIDRIDRESTARTOUTGAMEBUTTONFINDVIEWBYIDRIDOUTGAMESCORE1TEXTVIEWFINDVIEWBYIDRIDSCORE1RESTARTSETONCLICKLISTENERTHISOUTGAMESETONCLICKLISTENERTHISSCORE10000S10SCORE1SETTEXTSCORE“分“/SETTEXTSTRINGVALUEOFSCORE/恭喜您破纪录了ELSESETCONTENTVIEWRLAYOUTGAMEOVER1MYTIMETEXTVIEWFINDVIEWBYIDRIDMYTIMEMYNAMEEDITTEXTFINDVIEWBYIDRIDMYNAMEORDERBUTTONBUTTONFINDVIEWBYIDRIDORDERBUTTONORDERBUTTONSETONCLICKLISTENERTHISMYTIMESETTEXTS“秒“PUBLICVOIDONCLICKVIEWVSWITCHVGETIDCASERIDRESTARTNUMNUM1IFNUM2MPSTOPTOASTTOASTTOASTMAKETEXTTHIS,“恭喜您顺利通过三关,完成了本关卡的挑战“,2500/DURATION显示时间TOASTSETGRAVITYGRAVITYCENTER,0,0/SETGRAVITY起点位置,水平向右位移,垂直向下位移TOASTSHOWINTENTTTNEWINTENTTHIS,SUDOKUCLASSSTARTACTIVITYTTBREAKELSEINTENTTNEWINTENTTHIS,GAMECLASSSTARTACTIVITYTBREAKCASERIDOUTGAMEMPSTOPINTENTTTNEWINTENTTHIS,SUDOKUCLASSSTARTACTIVITYTTBREAKCASERIDORDERBUTTON/传输数据到数据库IFMYNAMEGETTEXTLENGTHFINDINTI0LISTALLNEWARRAYLIST/此时只是STRINGLOGD“AAA“,“SQLSELECTBEGIN“STRINGSQL“SELECTID,NAME,TIMEFROM“TABLENAME“ORDERBYTIME“CURSORRESULTTHISDBRAWQUERYSQL,NULLLOGD“AAA“,“SQLSELECTOVER“/执行查询语句FORRESULTMOVETOFIRSTRESULTISAFTERLASTRESULTMOVETONEXT/采用循环的方式检索数据IALLADD“第“I“名“RESULTGETSTRING1“RESULTGETSTRING2NUMIFNUM5MINSCORERESULTGETINT2/GETPREFERENCESMODE_PRIVATEEDITPUTINTMINSCORE,MINSCOREBREAKTHISDBCLOSERETURNALLPUBLICINTFINDMINSTRINGSQL“SELECTID,NAME,TIMEFROM“TABLENAME“ORDERBYTIME“CURSORRESULTTHISDBRAWQUERYSQL,NULL/RAWQUERY方法的第一个参数为SELECT语句;第二个参数为SELECT语句中占位符参数的值,如果SELECT语句没有使用占位符,该参数可以设置为NULL。LOGD“AAA“,“SQLSELECTOVER“/执行查询语句FORRESULTMOVETOFIRSTRESULTISAFTERLASTRESULTMOVETONEXT/采用循环的方式检索数据NUMIFNUM5MINSCORERESULTGETINT2/GETINTINTERGEMIN_VALUEBREAKTHISDBCLOSERETURNMINSCORE排行榜界面代码IMPORTANDROIDAPPACTIVITYIMPORTANDROIDDATABASESQLITESQLITEOPENHELPERIMPORTANDROIDOSBUNDLEIMPORTANDROIDUTILLOGIMPORTANDROIDWIDGETPUBLICCLASSRANKEXTENDSACTIVITYPRIVATESQLITEOPENHELPERHELPERNULLPRIVATELINEARLAYOUTMYLAYOUTNULLPUBLICVOIDONCREATEBUNDLESAVEDINSTANCESTATESUPERONCREATESAVEDINSTANCESTATESUPERSETCONTENTVIEWRLAYOUTRANKLOGD“AAA“,“CONTENTVIEWGO“THISMYLAYOUTLINEARLAYOUTSUPERFINDVIEWBYIDRIDRANKLAYOUTTHISHELPERNEWMYDATABASEHELPERTHISLISTVIEWLISTVIEWNEWLISTVIEWTHISLISTVIEWSETADAPTER/要设置数据NEWARRAYADAPTER/所有的数据是字符串THIS,/上下文对象ANDROIDRLAYOUTSIMPLE_LIST_ITEM_1,/列表显示的布局NEWMYTABCURSOR/实例化查询THISHELPERGETREADABLEDATABASE/取得SQLITEDATABASE对象FIND/调用FIND方法,返回LISTTHISMYLAYOUTADDVIEWLISTVIEW计时代码IMPORTANDROIDUTILLOGPUBLICCLASSTIMETHREADEXTENDSTHREADGAMEGAME/声明GAMEVIEW的引用BOOLEANFLAGTRUE/循环标志位PUBLICTIMETHREADGAMEGAME/构造器THISGAMEGAME/得到GAMEVIEW的引用PUBLICVOIDRUN/重写的RUN方法WHILEFLAGGAMETIME/时间自加LOGD“THREAD“,GAMETIME“SYSTEMOUTPRINTLNGAMETIME“TRYTHREADSLEEP1000/睡眠一秒种CATCHEXCEPTIONE/捕获异常EPRINTSTACKTRACE/打印异常信息音乐设置代码IMPORTANDROIDCONTENTCONTEXTIMPORTANDROIDMEDIAMEDIAPLAYERPUBLICCLASSMUSICPRIVATESTATICMEDIAPLAYERMPNULL/STOPOLDSONGANDSTARTNEWONE/PUBLICSTATICVOIDPLAYCONTEXTCONTEXT,INTRESOURCESTOPCONTEXT/停止一切正在播放的音乐MPMEDIAPLAYERCREATECONTEXT,RESOURCEMPSETLOOPINGTRUE/循环播放MPSTART/STOPTHEMUSIC/PUBLICSTATICVOIDSTOPCONTEXTCONTEXTIFMPNULLMPSTOPMPRELEASE/释放与播放器有关的系统资源MPNULLGANEMPLOYMENTTRIBUNALCLAIEMPLOYMENTTRIBUNALSSORTOUTDISAGREEMENTSBETWEENEMPLOYERSANDEMPLOYEESYOUMAYNEEDTOMAKEACLAIMTOANEMPLOYMENTTRIBUNALIFYOUDONTAGREEWITHTHEDISCIPLINARYACTIONYOUREMPLOYERHASTAKENAGAINSTYOUYOUREMPLOYERDISMISSESYOUANDYOUTHINKTHATYOUHAVEBEENDISMISSEDUNFAIRLYFORMOREINFORMATIONABOUTDISMISSALANDUNFAIRDISMISSAL,SEEDISMISSALYOUCANMAKEACLAIMTOANEMPLOYMENTTRIBUNAL,EVENIFYOUHAVENTAPPEALEDAGAINSTTHEDISCIPLINARYACTIONYOUREMPLOYERHASTAKENAGAINSTYOUHOWEVER,IFYOUWINYOURCASE,THETRIBUNALMAYREDUCEANYCOMPENSATIONAWARDEDTOYOUASARESULTOFYOURFAILURETOAPPEALREMEMBERTHATINMOSTCASESYOUMUSTMAKEANAPPLICATIONTOANEMPLOYMENTTRIBUNALWITHINTHREEMONTHSOFTHEDATEWHENTHEEVENTYOUARECOMPLAININGABOUTHAPPENEDIFYOURAPPLICATIONISRECEIVEDAFTERTHISTIMELIMIT,THETRIBUNALWILLNOTUSUALLYACCEPTIIFYOUAREWORRIEDABOUTHOWTHETIMELIMITSAPPLYTOYOU,TAKEADVICEFROMONEOFTHEORGANISATIONSLISTEDUNDERFURTHERHELPEMPLOYMENTTRIBUNALSARELESSFORMALTHANSOMEOTHERCOURTS,BUTITISSTILLALEGALPROCESSANDYOUWILLNEEDTOGIVEEVIDENCEUNDERANOATHORAFFIRMATIONMOSTPEOPLEFINDMAKINGACLAIMTOANEMPLOYMENTT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版影视广告制作与投放合同模板
- 二零二五年度电商企业快递服务全面合作协议书范本
- 二零二五年度15kw大泽柴油发电机组购销与客户定制化设计合同
- 2025版商铺租赁合同样本:解析与模板
- 二零二五版混凝土预制件购销及项目管理合同
- 2025版人工智能企业员工算法知识产权保密合同
- 2025版跨行业公司间资金借贷合同范本
- 二零二五年度汽车维修与保养服务合同
- 2025版智能家居系统集成与建筑工程二次结构承包综合服务合同
- 2025版工程担保服务合同示范文本
- 2025年3到6岁幼儿发展指南考试试题及答案
- 翻越您的浪浪山新学期开学第一课+课件
- 宏图煤矿防突设计2025.9.8
- 贵州航空产业城集团股份有限公司,贵州安立航空材料有限公司招聘笔试题库2025
- 第四届全国会计知识大赛模拟题库及答案
- 中日关系历史
- 2023年江苏省中学生生物学竞赛(奥赛)初赛试题和答案
- DB32-T 3129-2016适合机械化作业的单体钢架塑料大棚 技术规范-(高清现行)
- 中西医结合肿瘤医院员工手册
- GB∕T 12703.2-2021 纺织品 静电性能试验方法 第2部分:手动摩擦法
- 某某食堂改造施工组织设计
评论
0/150
提交评论