基于android的連連看游戲的設(shè)計(jì)與開(kāi)發(fā)_第1頁(yè)
基于android的連連看游戲的設(shè)計(jì)與開(kāi)發(fā)_第2頁(yè)
基于android的連連看游戲的設(shè)計(jì)與開(kāi)發(fā)_第3頁(yè)
基于android的連連看游戲的設(shè)計(jì)與開(kāi)發(fā)_第4頁(yè)
基于android的連連看游戲的設(shè)計(jì)與開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于android的連連看游戲的設(shè)計(jì)與開(kāi)發(fā)基于android的連連看游戲的設(shè)計(jì)與開(kāi)發(fā)題目名稱:工學(xué)院工學(xué)院基于android的連連看游戲的設(shè)計(jì)與開(kāi)發(fā)摘要:手機(jī)端游戲伴隨著手機(jī)的迅速普及和互聯(lián)網(wǎng)技術(shù)的發(fā)展得到越來(lái)越多游戲玩家的喜愛(ài)和追捧,多項(xiàng)數(shù)據(jù)表明,手游行業(yè)發(fā)展迅速并且發(fā)展越來(lái)越好?;贏ndroid操作系統(tǒng)的手機(jī)的使用是最廣泛的。本系統(tǒng)基于Android軟件的開(kāi)發(fā)平臺(tái),完成了一個(gè)在Android手機(jī)端運(yùn)行的“連連看小游戲”。本小游戲系統(tǒng)選擇在Eclipse開(kāi)發(fā)環(huán)境下,使用Java語(yǔ)言進(jìn)行程序設(shè)計(jì),完成了“連連看”的一些游戲功能。游戲模式分為“經(jīng)典模式”、“闖關(guān)模式”、“無(wú)限模式”和“極速模式”,同時(shí)實(shí)現(xiàn)了對(duì)各種模式下的游戲控制功能。經(jīng)過(guò)多人多方反復(fù)測(cè)試和體驗(yàn),本游戲系統(tǒng)基本功能完備,界面美觀,操作簡(jiǎn)單,用戶體驗(yàn)度較好。關(guān)鍵詞:安卓;休閑游戲;Java語(yǔ)言

DesignandImplementationofLianliankanBasedonandroidAbstract:MobilephonegameshavebecomepopularandsoughtafterbymoreandmoregameplayersalongwiththerapidspreadofmobilephonesandthedevelopmentofInternettechnologies.Anumberofdatashowthatthemobilegameindustryisdevelopingrapidlyanddevelopingbetterandbetter.MobilephonesbasedontheAndroidoperatingsystemarethemostwidelyused.ThissystemisbasedonthedevelopmentplatformofAndroidsoftware,andhascompleteda"Lianliankangame"runningontheAndroidmobilephone.ThissmallgamesystemchoosestousetheJavalanguageforprogrammingintheEclipsedevelopmentenvironment,andcompletessomegamefunctionsof"Lianliankan".Thegamemodeisdividedinto"classicmode","offmode","infinitemode"and"extrememode",andthegamecontrolfunctionforvariousmodesisrealizedatthesametime.Afterrepeatedtestingandexperiencebymanypeople,thegamesystemhascompletebasicfunctions,beautifulinterface,simpleoperationandgooduserexperience.Keywords:Android;Casualgames;JAVAlanguage

目錄TOC\o"1-3"\f\u1前言 11.1系統(tǒng)研發(fā)的背景及意義 11.2國(guó)內(nèi)外研究現(xiàn)狀和發(fā)展前景 11.3選題研究?jī)?nèi)容及主要目標(biāo) 21.3.1選題研究目標(biāo) 21.3.2選題研究主要思路和方法 22選題所用技術(shù) 32.1Eclipse開(kāi)發(fā)工具 32.2Java語(yǔ)言 32.3Android平臺(tái) 43游戲系統(tǒng)總體設(shè)計(jì) 63.1系統(tǒng)需求分析 63.2系統(tǒng)總體設(shè)計(jì) 63.3游戲流程設(shè)計(jì) 73.4系統(tǒng)模式的設(shè)計(jì) 73.4.1經(jīng)典模式的設(shè)計(jì) 73.4.2闖關(guān)模式的設(shè)計(jì) 73.4.3無(wú)限模式的設(shè)計(jì) 73.4.4極速模式的設(shè)計(jì) 83.5系統(tǒng)算法的設(shè)計(jì) 84游戲系統(tǒng)的實(shí)現(xiàn) 104.1游戲系統(tǒng)的界面實(shí)現(xiàn) 104.1.1系統(tǒng)歡迎界面的實(shí)現(xiàn) 104.1.2主菜單界面的實(shí)現(xiàn) 124.1.3注冊(cè)界面的實(shí)現(xiàn) 144.2游戲算法的實(shí)現(xiàn) 154.3游戲模式的實(shí)現(xiàn) 194.3.1無(wú)限模式的實(shí)現(xiàn) 194.3.2極速模式的實(shí)現(xiàn) 194.3.3闖關(guān)模式的實(shí)現(xiàn) 204.3.4經(jīng)典模式的實(shí)現(xiàn) 224.4游戲其他的實(shí)現(xiàn) 234.4.1游戲介紹模塊的實(shí)現(xiàn) 234.4.2關(guān)于圖片的實(shí)現(xiàn) 234.4.3畫線連接的實(shí)現(xiàn) 255系統(tǒng)測(cè)試 275.1登錄測(cè)試 275.2游戲算法測(cè)試 296總結(jié) 33參考文獻(xiàn) 34吉林工商學(xué)院本科畢業(yè)論文PAGEPAGE331前言當(dāng)今社會(huì)已經(jīng)進(jìn)入了快速發(fā)展階段,作為新時(shí)代的大學(xué)生我們應(yīng)該結(jié)合自身所學(xué),將我們?cè)谛K鶎W(xué)到的知識(shí)學(xué)以致用。伴隨著科技的不斷更新?lián)Q代,手機(jī)已經(jīng)成為了我們生活中不可或缺的一部分了,而手機(jī)游戲也逐漸成為了人們不可或缺的娛樂(lè)方式?,F(xiàn)在走在大街上或者是坐在公交上都會(huì)看見(jiàn)不同年齡段的人在玩著手機(jī)游戲。他們玩的最多的就是近些年火起來(lái)的和平精英、王者榮耀等手機(jī)游戲,這幾款游戲已經(jīng)成為了各大游戲排行榜的榜首,但是這種游戲需要玩家精神高度集中,而且每一局游戲都需要一定的時(shí)間,中途不能暫停,這種游戲的出現(xiàn)可以讓人們感覺(jué)到刺激,但是同時(shí)也讓人們更加的疲勞。因此消消樂(lè)這款休閑益智類的游戲異軍突起,成為了多數(shù)人放松時(shí)的首選。消消樂(lè)游戲可以隨時(shí)暫停隨時(shí)開(kāi)始,人們可以在等車的時(shí)候或者是等人的時(shí)候消磨時(shí)間,如果有事的時(shí)候還可以隨時(shí)退出,不會(huì)造成任何損失。但是這類的游戲十分稀少,開(kāi)發(fā)者不知道應(yīng)該以什么樣的方式來(lái)模仿類似的游戲讓人們?cè)跇I(yè)余的時(shí)間進(jìn)行放松。因此現(xiàn)在多數(shù)的開(kāi)發(fā)者都想以熱血刺激的游戲界面來(lái)刺激玩家的眼球,從而讓游戲變得火熱起來(lái)。但是對(duì)于我們來(lái)說(shuō)創(chuàng)造一個(gè)能刺激人們大腦的游戲來(lái)說(shuō)是不可能的,因此我們要另辟蹊徑,設(shè)計(jì)出一款簡(jiǎn)單而又不失趣味的安卓游戲1.1系統(tǒng)研發(fā)的背景及意義現(xiàn)在手機(jī)端的游戲在人們?nèi)粘I钤絹?lái)越受歡迎。消除類的游戲也成為了人們喜愛(ài)的游戲之一,無(wú)論看到哪個(gè)應(yīng)用市場(chǎng),消除類游戲總是排在熱搜榜前排。這首先是因?yàn)槭謾C(jī)的普及帶來(lái)了移動(dòng)游戲產(chǎn)業(yè)的高峰期,在這個(gè)基本人手一部手機(jī)的時(shí)代,各類APP爭(zhēng)相恐后的出現(xiàn),因?yàn)橛螒蚴敲坎渴謾C(jī)里必備的應(yīng)用,因此越來(lái)越多的人們把目光放在了手機(jī)游戲上。跟電腦端的游戲相比,手機(jī)游戲既不需要老實(shí)的坐在一個(gè)房間里玩,也不需要鼠標(biāo)鍵盤等外設(shè)。相對(duì)來(lái)說(shuō)手機(jī)游戲的優(yōu)勢(shì)就顯現(xiàn)出來(lái)了。另一方面網(wǎng)游比較令人煩惱的收費(fèi)玩法讓許多不充錢的玩家感到心煩,而手機(jī)端的小游戲只需要很少的內(nèi)置費(fèi)用,就可以一直玩下去,這和網(wǎng)游、頁(yè)游等收費(fèi)游戲相比,更加討人歡心。連連看,俄羅斯方塊等游戲在當(dāng)年是讓人們眼前一亮的經(jīng)典游戲,在那個(gè)手機(jī)還是奢侈品的時(shí)代,手機(jī)游戲就像新世界的大門,吸引著無(wú)數(shù)人的目光。它不僅僅是作為一種娛樂(lè)方式,更是一個(gè)劃分了新時(shí)代的產(chǎn)物,因此設(shè)計(jì)這樣的一款可以放松大腦的休閑娛樂(lè)類游戲,不僅可以鍛煉我對(duì)技術(shù)知識(shí)的掌握能力和對(duì)待問(wèn)題的思維方式,還可以讓我對(duì)經(jīng)典游戲進(jìn)行致敬,了解當(dāng)時(shí)開(kāi)發(fā)者設(shè)計(jì)時(shí)的心情。1.2國(guó)內(nèi)外研究現(xiàn)狀和發(fā)展前景手機(jī)游戲市場(chǎng)在20年的演變過(guò)程中,已經(jīng)開(kāi)始一步一步壯大起來(lái),并且受到了很多投資者的關(guān)注。近些年來(lái),我國(guó)智能手機(jī)的更新?lián)Q代速度越來(lái)越快,從BB機(jī)到大哥大再到后來(lái)的“直板”和“翻蓋”,到現(xiàn)在的全面屏,高效能處理器,升降式攝像頭,手機(jī)已經(jīng)成為了一個(gè)微型的電腦。配置的提升帶給玩家的游戲體驗(yàn)也越來(lái)越好,使得游戲用戶快速增加,為中國(guó)的游戲市場(chǎng)提供了很大的動(dòng)力。國(guó)家也發(fā)布了相關(guān)政策鼓勵(lì)創(chuàng)新,以及規(guī)章制度來(lái)規(guī)范游戲環(huán)境,“簡(jiǎn)政放權(quán)”式的管理為手機(jī)游戲市場(chǎng)添加了新動(dòng)力,促進(jìn)了游戲產(chǎn)業(yè)的發(fā)展。國(guó)外的移動(dòng)設(shè)備發(fā)展也是極為迅速。歐洲擁有全球最大的移動(dòng)游戲市場(chǎng),益智類游戲也成為很受歡迎的移動(dòng)市場(chǎng)應(yīng)用,游戲的跨語(yǔ)言征服了很多的不同國(guó)家的玩家。近年來(lái),日本手機(jī)游戲市場(chǎng)逐步增長(zhǎng),市場(chǎng)規(guī)模超過(guò)850億日元,很多國(guó)內(nèi)研發(fā)的游戲也流入入了國(guó)外市場(chǎng)。在韓國(guó),手機(jī)游戲用戶也開(kāi)始逐步增長(zhǎng)。在中國(guó)同樣是如此,并且部分游戲已經(jīng)形成了電子競(jìng)技的形式。在近幾年,開(kāi)心消消樂(lè)這款游戲異軍突起,以一種強(qiáng)橫的姿態(tài)進(jìn)入了各大游戲平臺(tái)的益智類游戲的三甲之位。剛開(kāi)始人們很奇怪多年前的兒童玩的游戲?yàn)槭裁船F(xiàn)在會(huì)如此火熱,但隨著游戲體驗(yàn)的積累,消消樂(lè)類的游戲通俗易懂,簡(jiǎn)單上手,讓人們十分欣然的接受了他??此坪?jiǎn)單但內(nèi)涵的知識(shí)他并不低于任何一款游戲,因此這款游戲讓大家深受喜愛(ài),并且刺激了游戲市場(chǎng),使得更多消除類的游戲快速發(fā)展,形成百花齊放的局面。1.3選題研究?jī)?nèi)容及主要目標(biāo)1.3.1選題研究目標(biāo)現(xiàn)在,Littlegame和Webgame廣受大家的追捧。簡(jiǎn)單的使用方法(不同于其他需要復(fù)雜的注冊(cè)和需要下載很大的安裝包類游戲)讓玩家很容易上手,LLK就是典型例子,并且名列各大游戲榜前排。休閑、樂(lè)趣和智慧是連連看的精髓,作為一款經(jīng)典的網(wǎng)絡(luò)休閑游戲,它適合大眾,無(wú)論男女老少,還是白領(lǐng)工人。同時(shí)它不僅可以調(diào)整自己的情緒,還可以在游戲中鍛煉自己的視野,提高自己的注意力,培養(yǎng)大腦反應(yīng)速度。在玩游戲的同時(shí),人們可以充實(shí)自己的生活,挑戰(zhàn)更高層次的體驗(yàn),提高我們遇到困難時(shí)的反應(yīng)能力與處理能力。這次的設(shè)計(jì)讓我加深了對(duì)Android的了解,也讓我全面的了解到一個(gè)項(xiàng)目的完成需要多方面知識(shí)的融合。實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),通過(guò)完成一個(gè)相對(duì)完整的Android游戲,我意識(shí)到游戲的完成需要多種知識(shí)相結(jié)合,這樣為我今后的工作和學(xué)習(xí)奠定了很好的基礎(chǔ)。1.3.2選題研究主要思路和方法本文的研究思路是在開(kāi)發(fā)系統(tǒng)之前,先充分的了解了互聯(lián)網(wǎng)的背景,系統(tǒng)開(kāi)發(fā)的目的與意義是什么,然后對(duì)開(kāi)發(fā)所使用到的結(jié)構(gòu)模式、開(kāi)發(fā)語(yǔ)言等進(jìn)行詳細(xì)的學(xué)習(xí)和了解,通過(guò)分析系統(tǒng)的開(kāi)發(fā)需求,做好技術(shù)知識(shí)的儲(chǔ)備,詳細(xì)的分析本游戲?qū)⒁鎸?duì)的使用人群,通過(guò)分析得到數(shù)據(jù),有針對(duì)性的進(jìn)行系統(tǒng)功能的設(shè)計(jì)。在功能設(shè)計(jì)完成之后首先在理論上分析程序的功能模塊之間的銜接是否符合邏輯,然后準(zhǔn)備好所需要的軟件和硬件設(shè)施。接下來(lái)將程序打包成APK文件安裝在安卓手機(jī)端上。最后在系統(tǒng)開(kāi)發(fā)完成時(shí)一定要做系統(tǒng)的測(cè)試,通過(guò)測(cè)試找出系統(tǒng)中存在的BUG并進(jìn)行針對(duì)性的修復(fù),并做好相關(guān)記錄,確保系統(tǒng)的穩(wěn)定正常的運(yùn)行。2選題所用技術(shù)2.1Eclipse開(kāi)發(fā)工具本論文所使用的主要開(kāi)發(fā)工具是Eclipse,可以將它理解成為一個(gè)跨平臺(tái)的集成開(kāi)發(fā)環(huán)境,并且附帶了一個(gè)標(biāo)準(zhǔn)的插件集,其中包括Java開(kāi)發(fā)工具(JavaDevelopmentkitJDK)。Eclipse是使用Java語(yǔ)言進(jìn)行開(kāi)發(fā)的,但又不僅限于Java語(yǔ)言使用,例如他還可以支持C/C++,Android,PHP等多種語(yǔ)言。在Eclipse出現(xiàn)之前,開(kāi)發(fā)人員一般會(huì)用記事本進(jìn)行程序代碼的編寫,但這個(gè)方法的弊端很多,不僅無(wú)法自動(dòng)檢驗(yàn)代碼編寫的語(yǔ)法錯(cuò)誤,排版頁(yè)非常麻煩,看上去很亂,程序?qū)懲旰筮€需要很多的步驟程序才能正常運(yùn)行。Eclipse的出現(xiàn)完美的解決了這些問(wèn)題,Eclipse具有自動(dòng)語(yǔ)法錯(cuò)誤糾正、自動(dòng)排版、文字大小設(shè)置、顏色設(shè)計(jì)、報(bào)錯(cuò)警告提示等諸多功能,極大的提高了程序開(kāi)發(fā)的效率和質(zhì)量,因此,越來(lái)越受人們關(guān)注。圖2-1Eclipse2.2Java語(yǔ)言吸收了c++語(yǔ)言優(yōu)點(diǎn)的Java有著很大的兩個(gè)優(yōu)勢(shì),功能強(qiáng)大、簡(jiǎn)單易用。這樣的一個(gè)強(qiáng)大的語(yǔ)言出自sun公司,使得單調(diào)的靜態(tài)頁(yè)面靈活了起來(lái),并且可以跨平臺(tái)運(yùn)行。語(yǔ)言特點(diǎn):1簡(jiǎn)單性,為了讓這個(gè)語(yǔ)言容易被接受,開(kāi)發(fā)者們?cè)赾++的基礎(chǔ)上,去掉了一些特征,使得Java可以自動(dòng)對(duì)對(duì)象進(jìn)行引用,實(shí)現(xiàn)無(wú)用單元自動(dòng)收集,使用者們可以把時(shí)間跟多的用在研發(fā)程序上,而不是被存儲(chǔ)管理問(wèn)題困擾。2面向?qū)ο螅诿嫦驅(qū)ο蟮南到y(tǒng)中,類class是方法的集合,在Java中,一切都可以看成為對(duì)象object。3跨平臺(tái),用Java編寫的程序可以在不同的平臺(tái)間運(yùn)行,只需要提前安裝好JVM(Java虛擬機(jī)),就可以解決了很多不必要的麻煩。此外,簡(jiǎn)單,分布式,解釋性,健壯性,安全性,體系結(jié)構(gòu)中立,高性能,多線程,動(dòng)態(tài)性等等優(yōu)點(diǎn)使得Java變成了現(xiàn)在編程界的主流語(yǔ)言,深受程序員們的喜愛(ài)。Java語(yǔ)言是一種隨著時(shí)代發(fā)展而快速發(fā)展的計(jì)算機(jī)語(yǔ)言,嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),語(yǔ)言編寫的簡(jiǎn)單性,為她將來(lái)的發(fā)展提供了保障。在社會(huì)進(jìn)步以及創(chuàng)新方面發(fā)揮著很大的作用。圖2-2Java2.3Android平臺(tái)Android是一個(gè)基于Linux內(nèi)核的開(kāi)源式平臺(tái),可以安裝在各種不同廠商生產(chǎn)出的上千種設(shè)備中。由Google公司以及開(kāi)放手機(jī)聯(lián)盟共同研究開(kāi)發(fā),在大陸地區(qū),被稱為安卓。2007年,Google與84家硬件廠商、軟件開(kāi)發(fā)商共同改良了Android系統(tǒng),并發(fā)布了Android的源代碼,Android作為一個(gè)免費(fèi)的開(kāi)發(fā)工具可以讓開(kāi)發(fā)人員0成本開(kāi)始進(jìn)行軟件開(kāi)發(fā),它的平臺(tái)優(yōu)勢(shì)最明顯的就是開(kāi)放性,其次是方便開(kāi)發(fā),他自由的開(kāi)發(fā)環(huán)境使得開(kāi)發(fā)人員不受規(guī)則阻礙的隨意開(kāi)發(fā)。Android平臺(tái)采用了分層的架構(gòu),從上到下為應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層。應(yīng)用程序包括了客戶端,日歷,地圖,聯(lián)系人管理程序等。應(yīng)用程序框架層主要是API框架,這個(gè)架構(gòu)簡(jiǎn)單化了組件的重用,在遵守框架的安全性下,每個(gè)應(yīng)用的程序都可以發(fā)布他的功能塊。這個(gè)框架包括了視圖view,內(nèi)容提供器contentprovides,資源管理器resourcemanager,通知管理器notificationmanager,活動(dòng)管理器activitymanager。系統(tǒng)運(yùn)行庫(kù)包含了一些C/C++的庫(kù),可以被Android中的組件使用。Android的Linuxkernel控制包括存儲(chǔ)管理器memorymanager,程序管理process,網(wǎng)絡(luò)堆棧networkstack,驅(qū)動(dòng)程序模型drivermanagement。一般一個(gè)Android應(yīng)用由很多個(gè)activity組成,每個(gè)activity可以互相跳轉(zhuǎn),設(shè)置一個(gè)button按鈕,點(diǎn)擊后就可以連接到下一個(gè)活動(dòng)。Apk是安卓應(yīng)用的后綴,也就是安卓安卓包。將apk文件發(fā)送到手機(jī)或者安卓模擬器上安裝之后就可以運(yùn)行。圖2-3Android圖2-4Android結(jié)構(gòu)3游戲系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)需求分析本次設(shè)計(jì)是對(duì)連連看游戲的設(shè)計(jì)與實(shí)現(xiàn),使用的平臺(tái)是Android平臺(tái),使用的開(kāi)發(fā)工具是eclipse,使用的語(yǔ)言是Java,然后實(shí)現(xiàn)連連看游戲的功能。設(shè)計(jì)的主要功能如下:游戲開(kāi)始按鈕,游戲暫停/繼續(xù)的功能。在進(jìn)入游戲第一層界面時(shí),用戶可以選擇注冊(cè)或直接賬號(hào)密碼登錄,玩家操作后切換進(jìn)入游戲界面。游戲通過(guò)調(diào)用函數(shù)來(lái)進(jìn)行圖片的加載,這時(shí)色塊會(huì)開(kāi)始進(jìn)行任意排列。本種設(shè)計(jì)匯合了游戲刷新按鈕與游戲開(kāi)始按鈕。在游戲地圖的上方,我們可以看到game的開(kāi)始和暫停按鈕以及別的按鈕。如果玩家發(fā)生緊急事情需要暫緩游戲的進(jìn)行,就可以通過(guò)點(diǎn)擊暫停按鈕來(lái)暫時(shí)暫停游戲,不關(guān)閉游戲界面的情況下點(diǎn)擊開(kāi)始可以繼續(xù)剛才的游戲。游戲計(jì)時(shí)功能。當(dāng)您在開(kāi)始進(jìn)入游戲界面時(shí),游戲具備計(jì)時(shí)功能。游戲開(kāi)始時(shí),時(shí)間顯示100秒然后倒數(shù)減少。如果玩家再倒數(shù)時(shí)間為0后沒(méi)有成功去掉所有圖片,將會(huì)彈出一個(gè)對(duì)話框,說(shuō)“游戲失敗了!再次啟動(dòng),單擊“確定”按鈕重新啟動(dòng)新的一輪游戲。反之,則該局游戲成功。彈出對(duì)話框,提示“游戲勝利!重新開(kāi)始,單擊“確定”,開(kāi)始?!庇螒蚰J竭x擇功能。在游戲的主界面,進(jìn)行游戲選擇模式。在每種游戲模式中,線和列用于劃分區(qū)域,可消除的圖案被填充在間隔的行和列中。選擇的模式不同,用戶體驗(yàn)也會(huì)各不相同,多元化的游戲模式保證了游戲的完好體驗(yàn)。重新開(kāi)始。點(diǎn)擊后使畫面上的布局更新。退出游戲。點(diǎn)擊退出游戲時(shí),頁(yè)面會(huì)恢復(fù)到模式選擇的主菜單。游戲介紹。在游戲界面需要有一個(gè)模塊對(duì)游戲進(jìn)行說(shuō)明簡(jiǎn)介,方便玩家了解規(guī)則。3.2系統(tǒng)總體設(shè)計(jì)游戲主要是用Android的view框架編寫的,采用的控件是eclipse插件中自帶的。游戲主要分為登錄界面,主菜單界面,游戲運(yùn)行時(shí)的界面,主菜單界面。其中主菜單界面有游戲模式和游戲介紹,而游戲模式分為經(jīng)典模式,闖關(guān)模式,無(wú)限模式,極速模式。隨意點(diǎn)擊一個(gè)模式按鈕即開(kāi)始運(yùn)行這個(gè)游戲模式。游戲運(yùn)行時(shí)的界面包括以下幾個(gè)功能,暫停游戲,重新開(kāi)始,退出游戲。具體見(jiàn)圖3-1。圖3-1總體設(shè)計(jì)圖3.3游戲流程設(shè)計(jì)該系統(tǒng)是在Android平臺(tái)下的連連看小游戲,玩家打開(kāi)游戲后,可以看到登錄界面以及注冊(cè)界面,玩家登陸后會(huì)進(jìn)入游戲主界面,在這個(gè)界面玩家可以自主選擇游戲模式,查看游戲簡(jiǎn)介。選擇并開(kāi)始游戲后在規(guī)定時(shí)間內(nèi)完成相同圖片的消除則任務(wù)完成通關(guān),在游戲中有重新開(kāi)始的選擇以及暫停游戲、退出游戲的選擇。見(jiàn)圖3-2。圖3-2游戲基本流程3.4系統(tǒng)模式的設(shè)計(jì)3.4.1經(jīng)典模式的設(shè)計(jì)經(jīng)典模式下分為三個(gè)難度,點(diǎn)擊經(jīng)典模式,會(huì)出現(xiàn)彈窗提示選擇,分別為簡(jiǎn)單,中等,困難。難度主要是根據(jù)圖片個(gè)數(shù)的不同確定的,更方便玩家的選擇。3.4.2闖關(guān)模式的設(shè)計(jì)闖關(guān)模式下的連連看,時(shí)間600,但是變化的速度會(huì)加快,隨著游戲的進(jìn)行,完成任務(wù)會(huì)出現(xiàn)對(duì)話框提示是否進(jìn)入下一關(guān),或者重新挑戰(zhàn)3.4.3無(wú)限模式的設(shè)計(jì)通過(guò)在游戲主界面上選擇無(wú)限模式來(lái)啟動(dòng)游戲。此模式也可稱作訓(xùn)練模式,因?yàn)闀r(shí)間是無(wú)限的,比較適合初玩者熟悉本游戲的頁(yè)面操作,以及對(duì)圖片進(jìn)行熟悉的一個(gè)過(guò)程。3.4.4極速模式的設(shè)計(jì)在這個(gè)模式下,游戲的時(shí)間相較于其他模式會(huì)短一些,但是每當(dāng)消掉一對(duì)相同圖片后,時(shí)長(zhǎng)會(huì)反向增加4,進(jìn)度條也會(huì)改變。一直到游戲結(jié)束會(huì)彈出對(duì)話框進(jìn)行選則,3.5系統(tǒng)算法的設(shè)計(jì)連連看游戲的設(shè)計(jì)中最重要的一部分就是算法設(shè)計(jì),也就是判斷兩個(gè)圖片是否可以消除,首先要判斷是否可以連接。下圖為算法流程圖:圖3-3算法流程圖無(wú)拐角消除。兩個(gè)圖片的橫坐標(biāo)相同,判斷兩個(gè)圖片的縱向上是否有其他圖片阻礙,如果存在則無(wú)法完成消除。兩個(gè)圖片縱坐標(biāo)一致時(shí),判斷兩個(gè)圖片的橫向上有沒(méi)有其他圖片阻礙,沒(méi)有存在就不可以消除。橫向或者是縱向上沒(méi)有阻礙的圖片,就可以完成連接消去。一個(gè)拐角消除。兩個(gè)不在同一水平線和垂直方向的相同圖片,需要用至少兩個(gè)直線連接。先根據(jù)一個(gè)圖標(biāo)的水平或是縱坐標(biāo)確定一個(gè)點(diǎn),通過(guò)這個(gè)點(diǎn)如果能沒(méi)有其他阻礙的連接另一個(gè)圖片的點(diǎn),這對(duì)圖片可以成功消除。算法總結(jié):找出拐角點(diǎn),然后判斷這個(gè)點(diǎn)與另一個(gè)圖片是否有相同的橫坐標(biāo)或者縱坐標(biāo),結(jié)合第一種消除算法,沒(méi)有其他圖片阻礙,就可以消除。兩個(gè)拐角消除。點(diǎn)擊兩個(gè)圖片且不能通過(guò)一個(gè)拐角消除,連接的直線上沒(méi)有其他圖片阻礙??v向上連接:找出兩個(gè)圖1和圖2可以連接的無(wú)拐角坐標(biāo)集,然后在這個(gè)坐標(biāo)集中遍歷到任意兩個(gè)橫坐標(biāo)相同的圖片,這兩個(gè)圖片可以通過(guò)無(wú)拐角消除的話,則對(duì)應(yīng)的圖1和圖2就可以消除。橫向上連接:類似縱向連接方法,找出圖1和圖2同一縱向上的點(diǎn)的集合,然后遍歷到任意縱坐標(biāo)相同的兩個(gè)圖,若果這倆圖可以通過(guò)無(wú)拐角方法連通,則圖1和圖2可以消去。4游戲系統(tǒng)的實(shí)現(xiàn)系統(tǒng)的實(shí)現(xiàn)是體現(xiàn)系統(tǒng)與用戶交互程度的一種特殊方式,用戶在使用過(guò)程中的感受體驗(yàn),就是對(duì)研究人員的研究成果的一種檢查方式,系統(tǒng)有沒(méi)有達(dá)到預(yù)期的目標(biāo)。以下為系統(tǒng)個(gè)界面的詳細(xì)設(shè)計(jì)思路。4.1游戲系統(tǒng)的界面實(shí)現(xiàn)4.1.1系統(tǒng)歡迎界面的實(shí)現(xiàn)登陸界面是用戶進(jìn)入游戲的第一層,有門則有鎖,有鎖既有鑰匙,用戶名和密碼就是鎖與鑰匙,兩者匹配門自動(dòng)開(kāi)啟。主要代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@layout/background"android:orientation="vertical"tools:ignore="Overdraw"><RelativeLayoutandroid:layout_width="fill_parent"android:layout_height="45dp"android:layout_marginLeft="1dp"android:layout_marginRight="1dp"android:background="@layout/background_div"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:text="@string/app_name"android:textAppearance="?android:attr/textAppearanceLarge"/></RelativeLayout><LinearLayoutandroid:id="@+id/LinearLayout1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="1dp"android:layout_marginRight="1dp"android:layout_marginTop="2dp"android:background="@layout/background_div"android:orientation="vertical"><EditTextandroid:id="@+id/et_user_name"android:layout_width="fill_parent"android:layout_height="40dip"android:layout_marginLeft="12dip"android:layout_marginRight="10dip"android:layout_marginTop="5dp"android:hint="用戶名"android:inputType="text"/><EditTextandroid:id="@+id/et_login_password"android:layout_width="fill_parent"android:layout_height="40dip"android:layout_marginLeft="12dip"android:layout_marginRight="10dip"android:layout_marginTop="5dp"android:hint="密碼"android:inputType="textPassword"android:maxLines="200"android:scrollHorizontally="true"/><Buttonandroid:id="@+id/btn_login"android:layout_width="match_parent"android:layout_height="40dip"android:layout_marginTop="5dp"android:gravity="center"android:text="@string/btn_login"android:textColor="#000000"android:textSize="18sp"/></LinearLayout>登錄界面如下圖圖4-1登錄4.1.2主菜單界面的實(shí)現(xiàn)在本界面可以直觀的看到每個(gè)模式以及游戲介紹,玩家可以通過(guò)介紹模塊了解游戲規(guī)則,并選擇模式開(kāi)始游戲。界面見(jiàn)圖4-2。圖4-2主界面主要代碼如下:gridview.setOnItemClickListener(newOnItemClickListener(){ publicvoidonItemClick(AdapterView<?>arg0,Viewview,intindex,longarg3){ Stringname=names.get(index); if(name.equals("無(wú)限模式")){ Intentintent=newIntent(MainActivity.this,OnePieceGame.class); intent.putExtra("gameType","無(wú)限模式"); startActivity(intent); MainActivity.this.finish(); } if(name.equals("闖關(guān)模式")){ Intentintent=newIntent(MainActivity.this,OnePieceGame.class); intent.putExtra("gameType","闖關(guān)模式"); startActivity(intent); MainActivity.this.finish(); } if(name.equals("急速模式")){ Intentintent=newIntent(MainActivity.this,OnePieceGame.class); intent.putExtra("gameType","急速模式"); startActivity(intent); MainActivity.this.finish(); } if(name.equals("經(jīng)典模式")){ dialogForMode().show(); } if(name.equals("游戲介紹")){ dialogForDetail().show(); } } }); }}4.1.3注冊(cè)界面的實(shí)現(xiàn)注冊(cè)界面中可以注冊(cè)用戶名,密碼,年齡,性別,電子郵件,然后實(shí)現(xiàn)注冊(cè)。見(jiàn)圖4-3。圖4-3注冊(cè)界面主要代碼如下:publicResultMessageregedit(Useruser){ ResultMessageresultMessage=newResultMessage(); Map<String,String>parameterMap=newHashMap<String,String>(); parameterMap.put("user.username",user.getUsername()); parameterMap.put("user.sex",user.getSex()); parameterMap.put("user.age",user.getAge()+""); parameterMap.put("user.password",user.getPassword()); parameterMap.put("user.email",user.getEmail()); parameterMap.put("user.type","2"); parameterMap.put("user.isenable","0"); HttpPosthttpPost=newHttpPost(HOST+"login-regedit.action"); try{ Stringmessage=client.doPostAsString(httpPost,parameterMap); if(message!=null&&!message.equals("")){ JSONObjectdemoJson=newJSONObject(message); resultMessage.setMessage(demoJson.getString("message")); resultMessage.setStatus(demoJson.getBoolean("status")); } }catch(RuntimeExceptione){ e.printStackTrace(); resultMessage.setMessage("系統(tǒng)發(fā)生異常!"); resultMessage.setStatus(false); }catch(Exceptione){ e.printStackTrace(); resultMessage.setMessage("系統(tǒng)發(fā)生異常!"); resultMessage.setStatus(false); } returnresultMessage; }4.2游戲算法的實(shí)現(xiàn)連連看游戲的設(shè)計(jì)中最重要的一部分就是算法設(shè)計(jì),也就是判斷兩個(gè)圖片是否可以消除,首先要判斷是否可以連接。無(wú)拐角消除。兩個(gè)圖片的橫坐標(biāo)相同,判斷兩個(gè)圖片的縱向上是否有其他圖片阻礙,如果存在則無(wú)法完成消除。兩個(gè)圖片縱坐標(biāo)一致時(shí),判斷兩個(gè)圖片的橫向上有沒(méi)有其他圖片阻礙,沒(méi)有存在就不可以消除。橫向或者是縱向上沒(méi)有阻礙的圖片,就可以完成連接消去。兩個(gè)圖片橫坐標(biāo)相等見(jiàn)圖4-4。圖4-4x軸坐標(biāo)相等 主要代碼如下:privatebooleanvertical(Pointa,Pointb){ if(a.x==b.x&&a.y==b.y) returnfalse; inty_start=a.x<=b.x?a.x:b.x; inty_end=a.x<=b.x?b.x:a.x; for(inty=y_start+1;y<y_end;y++) if(grid[y][a.y]!=0) returnfalse; p=newPoint[]{a,b}; lineType=V_LINE; returntrue; }兩個(gè)圖片縱坐標(biāo)相等見(jiàn)圖4-5。圖4-5y軸坐標(biāo)相等主要代碼如下:privatebooleanhorizon(Pointa,Pointb){ if(a.x==b.x&&a.y==b.y) returnfalse; intx_start=a.y<=b.y?a.y:b.y; intx_end=a.y<=b.y?b.y:a.y; for(intx=x_start+1;x<x_end;x++) if(grid[a.x][x]!=0){ returnfalse; } p=newPoint[]{a,b}; lineType=H_LINE; returntrue; }一個(gè)拐角消除。兩個(gè)不在同一水平線和垂直方向的相同圖片,需要用至少兩個(gè)直線連接。先根據(jù)一個(gè)圖標(biāo)的水平或是縱坐標(biāo)確定一個(gè)點(diǎn),通過(guò)這個(gè)點(diǎn)如果能沒(méi)有其他阻礙的連接另一個(gè)圖片的點(diǎn),這對(duì)圖片可以成功消除。算法總結(jié):找出拐角點(diǎn),然后判斷這個(gè)點(diǎn)與另一個(gè)圖片是否有相同的橫坐標(biāo)或者縱坐標(biāo),結(jié)合第一種消除算法,沒(méi)有其他圖片阻礙,就可以消除。見(jiàn)圖4-6。圖4-6一個(gè)拐角消除主要代碼如下: privatebooleanoneCorner(Pointa,Pointb){ Pointc=newPoint(a.x,b.y); Pointd=newPoint(b.x,a.y); if(grid[c.x][c.y]==0){ booleanmethod1=horizon(a,c)&&vertical(b,c); p=newPoint[]{a,newPoint(c.x,c.y),b}; lineType=ONE_C_LINE; returnmethod1; } if(grid[d.x][d.y]==0){ booleanmethod2=vertical(a,d)&&horizon(b,d); p=newPoint[]{a,newPoint(d.x,d.y),b}; lineType=ONE_C_LINE; returnmethod2; }else{ returnfalse; } }兩個(gè)拐角消除。點(diǎn)擊兩個(gè)圖片且不能通過(guò)一個(gè)拐角消除,連接的直線上沒(méi)有其他圖片阻礙??v向上連接:找出兩個(gè)圖1和圖2可以連接的無(wú)拐角坐標(biāo)集,然后在這個(gè)坐標(biāo)集中遍歷到任意兩個(gè)橫坐標(biāo)相同的圖片,這兩個(gè)圖片可以通過(guò)無(wú)拐角消除的話,則對(duì)應(yīng)的圖1和圖2就可以消除。橫向上連接:類似縱向連接方法,找出圖1和圖2同一縱向上的點(diǎn)的集合,然后遍歷到任意縱坐標(biāo)相同的兩個(gè)圖,若果這倆圖可以通過(guò)無(wú)拐角方法連通,則圖1和圖2可以消去。見(jiàn)圖4-7。圖4-7兩個(gè)拐角消除主要代碼如下:privatebooleantwoCorner(Pointa,Pointb){ li=scan(a,b); if(li.isEmpty()) returnfalse; for(intindex=0;index<li.size();index++){ Lineline=(Line)li.get(index); if(line.direct==1){ if(vertical(a,line.a)&&vertical(b,line.b)){ p=newPoint[]{a,line.a,line.b,b}; lineType=TWO_C_LINE; returntrue; } }elseif(horizon(a,line.a)&&horizon(b,line.b)){ p=newPoint[]{a,line.a,line.b,b}; lineType=TWO_C_LINE; returntrue; } } returnfalse; }4.3游戲模式的實(shí)現(xiàn)4.3.1無(wú)限模式的實(shí)現(xiàn)通過(guò)在游戲主界面上選擇無(wú)限模式來(lái)啟動(dòng)游戲。此模式也可稱作訓(xùn)練模式,因?yàn)闀r(shí)間是無(wú)限的,比較適合初玩者熟悉本游戲的頁(yè)面操作,以及對(duì)圖片進(jìn)行熟悉的一個(gè)過(guò)程。其界面見(jiàn)圖4-8。圖4-8無(wú)限模式無(wú)線模式的關(guān)鍵代碼如下:publicvoidinfiniteMode(){ cv.reset(); cv.GAMETIME=Integer.MAX_VALUE; pb.setProgress(cv.GAMETIME); cv.PROCESS_VALUE=cv.GAMETIME; dormant=Integer.MAX_VALUE; mRedrawHandler.sleep(dormant); cv.setEnabled(true); show_RemainTime.setText("無(wú)限模式"); }4.3.2極速模式的實(shí)現(xiàn)在這個(gè)模式下,游戲的時(shí)間相較于其他模式會(huì)短一些,但是每當(dāng)消掉一對(duì)相同圖片后,時(shí)長(zhǎng)會(huì)反向增加4,進(jìn)度條也會(huì)改變。一直到游戲結(jié)束會(huì)彈出對(duì)話框進(jìn)行選則,具體界面見(jiàn)圖4-9。圖4-9極速模式主要代碼如下:publicvoidrapidlyMode(){ cv.reset(); cv.UPTIME=5; cv.GAMETIME=100; dormant=1000; pb.setProgress(cv.GAMETIME); cv.PROCESS_VALUE=cv.GAMETIME; mRedrawHandler.sleep(dormant); cv.setEnabled(true); }4.3.3闖關(guān)模式的實(shí)現(xiàn)闖關(guān)模式下的連連看,時(shí)間600,但是變化的速度會(huì)加快,隨著游戲的進(jìn)行,完成任務(wù)會(huì)出現(xiàn)對(duì)話框提示是否進(jìn)入下一關(guān),或者重新挑戰(zhàn)。界面見(jiàn)圖4-10。圖4-10闖關(guān)模式主要代碼如下:publicAlertDialogdialogForSucceed(){ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setIcon(R.drawable.icon).setMessage(R.string.succeedInfo).setPositiveButton(R.string.next,newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //TODOAuto-generatedmethodstub dormant=dormant-300; newPlay(); } }).setNeutralButton(R.string.again_challenge,newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //TODOAuto-generatedmethodstub newPlay(); } }); returnbuilder.create(); } publicAlertDialogdialogForFail(){ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setIcon(R.drawable.icon).setMessage(R.string.failInfo).setPositiveButton(R.string.again_challenge,newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //TODOAuto-generatedmethodstub newPlay(); } }).setNegativeButton(R.string.exit,newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //TODOAuto-generatedmethodstub isCancel=false; finish(); } }); returnbuilder.create();4.3.4經(jīng)典模式的實(shí)現(xiàn)經(jīng)典模式下分為三個(gè)難度,點(diǎn)擊經(jīng)典模式,會(huì)出現(xiàn)彈窗提示選擇,分別為簡(jiǎn)單,中等,困難。難度主要是根據(jù)圖片個(gè)數(shù)的不同確定的,更方便玩家的選擇。具體界面見(jiàn)圖4-11.圖4-11經(jīng)典模式簡(jiǎn)單主要代碼如下:publicvoidclassicalSimplicity(){ cv.reset(); cv.row=5; cv.col=5; pb.setProgress(cv.GAMETIME); cv.PROCESS_VALUE=cv.GAMETIME; mRedrawHandler.sleep(dormant); cv.setEnabled(true); }中等主要代碼如下:publicvoidclassicalSecondary(){ cv.reset(); cv.row=8; cv.col=8; pb.setProgress(cv.GAMETIME); cv.PROCESS_VALUE=cv.GAMETIME; mRedrawHandler.sleep(dormant); cv.setEnabled(true); }困難主要代碼如下:publicvoidclassicalDifficulty(){ this.newPlay(); }4.4游戲其他的實(shí)現(xiàn)4.4.1游戲介紹模塊的實(shí)現(xiàn)這個(gè)模塊主要是進(jìn)行文字?jǐn)⑹觯蛲婕艺故居螒蛟O(shè)計(jì)的目的,還有介紹游戲的操作方法。界面如圖4-12。圖4-12游戲介紹4.4.2關(guān)于圖片的實(shí)現(xiàn)通過(guò)定義數(shù)組實(shí)現(xiàn)圖片的布局排列,然后將圖片添加到頁(yè)面布局排列中。定義圖片主要代碼如下:publicint[]imageType=newint[]{R.drawable.aa,R.drawable.bb, R.drawable.cc,R.drawable.dd,R.drawable.ee,R.drawable.ff, R.drawable.gg,R.drawable.hh,R.drawable.ii,R.drawable.jj, R.drawable.kk,R.drawable.ll,R.drawable.mm,R.drawable.nn, R.drawable.oo,R.drawable.pp};將圖片顯示主要代碼如下:publicvoidfillImage(Contextcontext){ intlth=imageType.length; image=newBitmap[lth]; for(inti=0;i<lth;i++){ Bitmapbitmap=Bitmap.createBitmap((int)width,(int)height, Bitmap.Config.ARGB_8888); Drawabledrw; Canvascanvas=newCanvas(bitmap); drw=context.getResources().getDrawable(imageType[i]); drw.setBounds(1,1,30,30); drw.draw(canvas); image[i]=bitmap; } }隨機(jī)排列圖片代碼如下:publicvoidinitGrid(){ Randomad=newRandom(); for(inti=0;i<row;i++){ for(intj=0;j<col;j++){ if(i==0||i==row-1||j==0||j==col-1){ grid[i][j]=0; }else{ if(type!=null&&type.size()>0){ intindex=ad.nextInt(type.size()); grid[i][j]=type.get(index); type.remove(index); } } } } }對(duì)選中圖片進(jìn)行提示的主要代碼如下: protectedvoidonDraw(Canvascanvas){ Paintbackground=newPaint(); background.setColor(Color.WHITE); canvas.drawRect(0,0,getWidth(),getHeight(),background); Painthilite=newPaint(); hilite.setColor(getResources().getColor(R.color.hilite)); Paintlight=newPaint(); light.setColor(getResources().getColor(R.color.light)); for(inti=0;i<=9;i++){ canvas.drawLine(0,i*height,getWidth(),i*height,light); canvas.drawLine(0,i*height+1,getWidth(),i*height+1, hilite); canvas.drawLine(i*width,0,i*width,getHeight(),light); canvas.drawLine(i*width+1,0,i*width+1,getHeight(), hilite); } if(CtrlView.CURRENT_CH){ Paintselected=newPaint(); selected.setColor(getResources().getColor(R.color.puzzle_selected)); canvas.drawRect(selRect,selected); } for(inti=0;i<9;i++){ for(intj=0;j<9;j++){ if(grid[i][j]!=0){ canvas.drawBitmap(image[Arrays.binarySearch(imageType, grid[i][j])],i*width,j*height,null); } } 4.4.3畫線連接的實(shí)現(xiàn)通過(guò)算法的設(shè)計(jì)判斷兩個(gè)圖片之間是否符合畫線連接,如果符合則畫線成功,否則畫線失敗。主要代碼如下:if(isLine){ PaintlineColor=newPaint(); lineColor.setColor(Color.RED); switch(lineType){ caseV_LINE: canvas.drawLine(p[0].x*width+width/2,p[0].y*height +height/2,p[1].x*width+width/2,p[1].y *height+height/2,lineColor); break; caseONE_C_LINE: canvas.drawLine(p[0].x*width+width/2,p[0].y*height +height/2,p[1].x*width+width/2,p[1].y *height+height/2,lineColor); canvas.drawLine(p[1].x*width+width/2,p[1].y*height +height/2,p[2].x*width+width/2,p[2].y *height+height/2,lineColor); break; caseTWO_C_LINE: canvas.drawLine(p[0].x*width+width/2,p[0].y*height +height/2,p[1].x*width+width/2,p[1].y *height+height/2,lineColor); canvas.drawLine(p[1].x*width+width/2,p[1].y*height +height/2,p[2].x*width+width/2,p[2].y *height+height/2,lineColor); canvas.drawLine(p[3].x*width+width/2,p[3].y*height +height/2,p[2].x*width+width/2,p[2].y *height+height/2,lineColor); break; default: break; } } super.onDraw(canvas);5系統(tǒng)測(cè)試系統(tǒng)測(cè)試是程序開(kāi)發(fā)中非常重要的一個(gè)步驟,通過(guò)系統(tǒng)測(cè)試可以查找到系統(tǒng)中不容易發(fā)現(xiàn)的BUG,解決系統(tǒng)的潛在隱患。用自動(dòng)化的軟件或工具或者是手動(dòng)的方法對(duì)軟件進(jìn)行軟件測(cè)試,這個(gè)過(guò)程是根據(jù)之前的測(cè)試計(jì)劃開(kāi)展的。通過(guò)大多數(shù)人員的使用習(xí)慣分析后,我們一般分成黑盒測(cè)試和白盒測(cè)試。下面對(duì)這兩種測(cè)試分別說(shuō)明。黑盒測(cè)試:別名功能也成為數(shù)據(jù)驅(qū)動(dòng)測(cè)試。當(dāng)我們知道了這個(gè)程序所具備的功能,并且對(duì)這些功能進(jìn)行檢測(cè),看這些功能是否可以達(dá)到預(yù)期的效果。每個(gè)程序都可以形象的視為一個(gè)未知的黑色盒子,因?yàn)椴煌该?,所以我們并不知道盒子的?nèi)部構(gòu)造,在忽略這些內(nèi)部位置因素時(shí),測(cè)試人員開(kāi)始進(jìn)行功能測(cè)試,測(cè)試也有自己的規(guī)范原則。正確使用測(cè)試程序可以正常運(yùn)行,信息輸出完成。白盒測(cè)試:別名結(jié)構(gòu)測(cè)試也成為邏輯驅(qū)動(dòng)測(cè)試程序測(cè)試。與黑盒測(cè)試相比,白盒子很好地知曉了系統(tǒng)的內(nèi)部需求以及工作的流程,一個(gè)開(kāi)發(fā)出來(lái)的產(chǎn)品是否能按照操作規(guī)范進(jìn)行工作。測(cè)試用來(lái)驗(yàn)證結(jié)論是否正確,以查看每個(gè)路徑是否建議工作,無(wú)論功能如何。測(cè)試的手段主要分以下幾種:邏輯覆蓋發(fā),基本路徑法。5.1登錄測(cè)試測(cè)試流程:1、輸入用戶名與密碼后登陸。2、只輸入密碼登錄。3、只輸入用戶名登錄。4、不輸入賬戶名也不輸入密碼登錄。測(cè)試情況:1、輸入用戶與密碼后可以正常登陸游戲。2、只輸入密碼不能登錄游戲,頁(yè)面提示用戶名不能為空。3、只輸入用戶名不能登錄游戲,頁(yè)面提示密碼不能為空。4、用戶名和密碼都不輸入則不能登錄游戲,頁(yè)面提示用戶名,密碼不能為空第1種測(cè)試圖片見(jiàn)圖5-1:圖5-1正常登錄第2種測(cè)試圖片見(jiàn)圖5-2:圖5-2只輸入密碼第3種測(cè)試圖片見(jiàn)圖5-3:圖5-3只輸入用戶第4種測(cè)試圖片見(jiàn)圖5-4:圖5-4用戶密碼都不輸入5.2游戲算法測(cè)試測(cè)試流程:1、點(diǎn)擊水平方向上相同的色塊,并且兩者之間沒(méi)有其他障礙,進(jìn)行消除。2、點(diǎn)擊游戲暫停功能。3、點(diǎn)擊游戲重新開(kāi)始功能。4、點(diǎn)擊不同的兩個(gè)色塊,進(jìn)行消除。5、點(diǎn)擊垂直方向上兩個(gè)相同的色塊,且兩者之間沒(méi)有障礙物,進(jìn)行消除。測(cè)試結(jié)果:1、水平方向上兩個(gè)相同的圖案色塊間顯示出一條線連接,色塊可以消除。2、點(diǎn)擊暫停按鈕,游戲時(shí)間靜止不變,再次點(diǎn)擊,時(shí)間繼續(xù)倒計(jì)時(shí)。3、點(diǎn)擊重新開(kāi)始的按鈕,游戲界面刷新,會(huì)出現(xiàn)一個(gè)新的頁(yè)面,時(shí)間也恢復(fù)成為原始時(shí)間,重新開(kāi)始倒計(jì)時(shí)。4、點(diǎn)擊不同顏色的兩個(gè)色塊,不會(huì)出現(xiàn)直線連接也不會(huì)消除。5、垂直方向上的兩個(gè)色塊中間出現(xiàn)一條豎直的線鏈接兩個(gè)色塊,可以消除。第1種測(cè)試圖片見(jiàn)圖5-5:圖5-5消除圖片第2種測(cè)試圖片見(jiàn)圖5-6:圖5-6游戲暫停第3種測(cè)試圖片見(jiàn)圖5-7:圖5-7重新開(kāi)始第4種測(cè)試圖片見(jiàn)圖5-8:圖5-8點(diǎn)擊不相同圖片第5種測(cè)試圖片見(jiàn)圖5-9:圖5-9點(diǎn)擊垂直方向兩個(gè)相同圖片6總結(jié)“合抱之木,生于毫末;九層之臺(tái),起于壘土;千里之行,始于足下?!泵總€(gè)日日夜夜的積累,才會(huì)讓知識(shí)在頭腦中越來(lái)越牢固。對(duì)于學(xué)生來(lái)說(shuō),要深知千里之行始于足下的涵義,這對(duì)于我們?nèi)蘸蟮纳詈凸ぷ鲿?huì)有莫大的幫助。本次論文是通過(guò)一點(diǎn)一點(diǎn)的研究、探索還有總結(jié)完成的。剛開(kāi)始做論文設(shè)計(jì)時(shí),我通過(guò)在互聯(lián)網(wǎng)上搜索各種各樣的相關(guān)文獻(xiàn),了解于本課題有關(guān)的各種資料,吸取其中的知識(shí)學(xué)習(xí)并且研究,為接下來(lái)的論文做好深厚的理論支持和鋪墊,給到論文所闡述的內(nèi)容充分的科學(xué)依據(jù)。經(jīng)過(guò)了理論知識(shí)的搜索整理之后,對(duì)于論文所研究的課題又進(jìn)行了詳細(xì)的需求分析,通過(guò)了解系統(tǒng)的適用人群和應(yīng)用范圍,最后設(shè)計(jì)初一個(gè)滿足大眾需求的系統(tǒng)。運(yùn)用平時(shí)所學(xué)習(xí)和研究的Android,Java等技術(shù),進(jìn)一步的對(duì)所設(shè)計(jì)的系統(tǒng)功能做具體的實(shí)現(xiàn),雖然本人的技術(shù)可以實(shí)現(xiàn)大部分的功能,但是還是出現(xiàn)一些問(wèn)題,通過(guò)在網(wǎng)絡(luò)上查詢資料等方法,最后也都得到了解決,現(xiàn)在系統(tǒng)已經(jīng)可以正常的運(yùn)行和使用。由于本人還沒(méi)有真正的在編程行業(yè)工作過(guò),還只是一名熱愛(ài)編程的大學(xué)生,技術(shù)還是不夠成熟,因此本系統(tǒng)在性能和功能方面還是有著很多的不足,但是不影響一般功能的正常的使用

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論