基于Java的連連看游戲設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于Java的連連看游戲設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于Java的連連看游戲設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于Java的連連看游戲設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于Java的連連看游戲設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計(jì)說明書基于java的連連看游戲的設(shè)計(jì)與實(shí)現(xiàn)題目用一號(hào)黑體字,一行排不下可排兩行,居中。077信息商務(wù)學(xué)院學(xué)生姓名:學(xué)號(hào):077信息商務(wù)學(xué)院電子與計(jì)算機(jī)科學(xué)技術(shù)系學(xué)院:電子與計(jì)算機(jī)科學(xué)技術(shù)系網(wǎng)絡(luò)工程系名:網(wǎng)絡(luò)工程專業(yè):指導(dǎo)教師:2015年5月基于java的連連看游戲的設(shè)計(jì)與實(shí)現(xiàn)摘要游戲開發(fā)至今已有30多年的歷史,在這短短的時(shí)期,隨著硬件水平的提高,游戲開發(fā)的新技術(shù)層出不窮,經(jīng)典游戲無處不在。大多數(shù)人在聽到游戲連連看,往往會(huì)認(rèn)為這是一個(gè)小游戲。連連看游戲,它是指在一個(gè)地區(qū),有許多不同的圖像,通過點(diǎn)擊兩個(gè)相同的圖片和符合一定的規(guī)則,來消除它們的一個(gè)游戲。我們是最常見的QQ連連看QQ游戲大廳之一,在互聯(lián)網(wǎng)上也有很多各種各樣的單機(jī)游戲連連看。在游戲的過程中,可以考慮如何使用學(xué)過的知識(shí)去實(shí)現(xiàn)游戲的效果,并嘗試編寫一款屬于自己的連連看,這是一個(gè)非常愉快的事情。在這里面,我們將教你詳細(xì)說明如何使用Java來開發(fā)一個(gè)屬于自己的獨(dú)立的連連看。這個(gè)游戲使用JAVA語言開發(fā),如Eclipse的開發(fā)平臺(tái)。游戲的主界面是基于GUI(圖形用戶界面)的發(fā)展,使得游戲界面簡單明了。并調(diào)用其中的一些功能,完成事件觸發(fā)功能。希望通過本次的開發(fā)設(shè)計(jì)連連看游戲,給你一個(gè)小樂趣的生活。通過定義動(dòng)態(tài)二維數(shù)組,按照一定的路徑判斷算法執(zhí)行規(guī)定的游戲。關(guān)鍵詞:連連看,小游戲,JAVA,GUI,數(shù)組Designandimplementationofjava-basedgameLianliankanAbstractGamedevelopmenthasbeenmorethan30yearshistory,inthisshortperiod,withtheimprovementofhardwarelevel,thegamedevelopmentnewtechnologyemergeinendlessly,classicgameseverywhere.Mostpeopleheardthelianliankangame,oftenwillthinkthisisasmallgame.Lianliankangame,itistopointtoinonearea,therearemanydifferentimages,byclickingontwoofthesamepicturesandconformtocertainrulestoeliminatetheiragame.WeareoneofthemostcommoninQQlianliankanQQgameshall,ontheInternetalsohasmanyavarietyofstand-alonelianliankangame.Intheprocessofthegame,canconsiderhowtousetheirmasteryoftheprogramtoachievetheeffectofthegame,andtrytodevelopourownlianliankan,thisisaverypleasantthing.Inthischapter,wewillteachyouindetailhowtouseJavatodevelopabelongstoownstandalonelianliankan.ThisgameUSESJAVAlanguagedevelopment,MyEclipseasdevelopmentplatform.GamemaininterfaceisbasedonthedevelopmentofGUI(graphicaluserinterface),makesthegameinterfacesimpleandclear.Andcallsomeofthesefunctions,completedtheeventtriggerfunction.Hopethatthroughthisdevelopmentdesignlianliankangame,giveyoualittlepleasureoutoflife.Thegamebydefiningthedynamictwo-dimensionalarray,accordingtoacertainpathjudgmentalgorithmimplementationregulations.Keywords:lianliankan,littlegame,JAVA,GUI,array目錄1引言 11.1課題研究的意義和目的 12連連看游戲及相關(guān)背景介紹 22.1相關(guān)背景及介紹 22.1.1計(jì)算機(jī) 22.1.2電腦游戲 32.1.3連連看 43相關(guān)技術(shù)支持及介紹 73.1Java 73.1.1Java語言背景介紹 73.1.2Java語言特性 83.2Eclipse 84需求相關(guān)設(shè)計(jì) 104.1系統(tǒng)需求分析 104.2程序開發(fā)環(huán)境 104.3系統(tǒng)功能 104.4模塊設(shè)計(jì) 104.4.1總體框架介紹 104.4.2算法設(shè)計(jì)介紹 115游戲相關(guān)設(shè)計(jì) 145.1游戲界面設(shè)計(jì) 145.2相關(guān)功能實(shí)現(xiàn) 156測(cè)試與分析 196.1游戲界面展示 196.2測(cè)試中遇到的問題與分析 216.2.1算法設(shè)計(jì)介紹 216.2.2異常的相關(guān)與處理 217結(jié)論 23參考文獻(xiàn) 24致謝 251引言1.1課題研究的意義和目的計(jì)算機(jī)作為20世紀(jì)一個(gè)偉大的發(fā)明,給人們帶來了很多的方便和快捷,在工作和生活帶來了意想不到的效果。隨著時(shí)間的推移,計(jì)算機(jī)的發(fā)展越來越快,由一個(gè)“巨大的家伙”已經(jīng)發(fā)展到可以隨身攜帶。而電腦游戲作為電腦的衍生產(chǎn)物,已成為了人們休閑娛樂的重要方式,在人們緊張工作中帶來了放松,同時(shí)在很大程度上也加強(qiáng)了人的手,腦協(xié)調(diào)能力和能力與人溝通。相對(duì)于以GB為大小的大型游戲而言,小的游戲有越來越多的人的喜愛,操作簡單,使用方便,而不是等待很長的時(shí)間來下載過程中),特別是許多經(jīng)典的游戲,更是讓人們癡迷。

2連連看游戲及相關(guān)背景介紹2.1相關(guān)背景及介紹2.1.1計(jì)算機(jī)在沒有發(fā)明計(jì)算機(jī)之前,所有復(fù)雜的大規(guī)模計(jì)算都需要人工完成,這導(dǎo)致了有一個(gè)發(fā)雜的式子需要十幾甚至二十幾個(gè)人去沒日沒夜的計(jì)算好久才能完成。在二次世界大戰(zhàn)期間,很多研究人員為了計(jì)算炮彈和導(dǎo)彈的彈道而需要一大批研究人員計(jì)算好多天才能完成,這直接的加速了人們迫切的需要一個(gè)可以計(jì)算復(fù)雜式子的工具。在1941年的夏天誕生了世界上第一臺(tái)電子計(jì)算機(jī)—阿塔納索夫-貝瑞計(jì)算機(jī)。它采用了真空管計(jì)算器,二進(jìn)制值,可復(fù)用內(nèi)存;英國在1943年研制成功的巨像計(jì)算機(jī),但是它的程序化能力卻是十分的有限,即使這樣,它也使人們相信真空管是值得信賴的電子產(chǎn)品。美國哈佛大學(xué)所研究的MarkI和基于二進(jìn)制的ENIAC,可以稱之為電子數(shù)值積分計(jì)算器,這就是第一臺(tái)通用意圖的計(jì)算機(jī),由于設(shè)計(jì)時(shí)間較早,導(dǎo)致其結(jié)構(gòu)設(shè)計(jì)不夠靈活,以至于每一次編程都需要將其的電子線路重新連接起來。在二次世界大戰(zhàn)的時(shí)候,美國海軍為了訓(xùn)練飛行員,特意向麻省理工學(xué)院進(jìn)行了咨詢,問其能否可以開發(fā)出一款用于模擬飛機(jī)真實(shí)操作的計(jì)算機(jī)。軍方最早是想計(jì)算機(jī)將飛行員模擬飛行時(shí)的操作以及所產(chǎn)生的相關(guān)數(shù)據(jù)能及時(shí)顯示到所對(duì)應(yīng)的儀表盤上。和以前的訓(xùn)練系統(tǒng)林克不同的是,軍方的這個(gè)系統(tǒng)可以可能真實(shí)的根據(jù)空氣動(dòng)力學(xué)模型去模擬,使它可以適用于各種不同種類的飛機(jī)?;诖嗽恚槭±砉W(xué)院研制出了世界上第一個(gè)實(shí)時(shí)處理數(shù)據(jù)的計(jì)算機(jī),以及芯片存儲(chǔ)設(shè)備。這是個(gè)人計(jì)算機(jī)發(fā)展史上的一大步。艾尼阿克的研究人員對(duì)其所存在的隱患進(jìn)行了完善與修改,從而得到了一種新的程序存儲(chǔ)體系,將其成為馮?諾依曼結(jié)構(gòu)。該系統(tǒng)是現(xiàn)在我們所使用的所有計(jì)算機(jī)的基礎(chǔ)。二次大戰(zhàn)結(jié)束以后,大量的開始研究基于該系統(tǒng)的計(jì)算機(jī),其中英國研發(fā)的時(shí)間最早。雖然建成并投入運(yùn)行的第一個(gè)是一個(gè)小規(guī)模的實(shí)驗(yàn)機(jī),但其真正的被研發(fā)出來很可能是存儲(chǔ)電子計(jì)算器的時(shí)候了。在20世紀(jì)的50年代,人們研究出來了真空管計(jì)算機(jī),自被研發(fā)出來的一開始,真空管計(jì)算機(jī)就成為了主流。1958年,在日后英特爾的教父羅伯特?諾伊斯的率領(lǐng)下,人們研發(fā)出了集成電路,很快又制造出來了微處理器。我們將1959年至1964年期間研發(fā)出來的稱為第二代計(jì)算機(jī)。20世紀(jì)60年代,晶體管計(jì)算機(jī)占據(jù)了世界計(jì)算機(jī)的主導(dǎo)地位。由于其價(jià)格低廉,速率快,性能可靠,體積小這幾大優(yōu)勢(shì),使得它們能夠批量化生產(chǎn)。1在這期間所生產(chǎn)的計(jì)算機(jī)被人們稱為第三代計(jì)算機(jī)。集成電路的大量使用是其最大的特點(diǎn),典例是IBM的360。在20世紀(jì)70年代,引進(jìn)的積體電路大大降低了計(jì)算機(jī)的生產(chǎn)成本,這意味著計(jì)算機(jī)也開始進(jìn)入了普通家庭1972年以后的計(jì)算機(jī)稱之為第四代計(jì)算機(jī)。以大規(guī)模的集成電路為基礎(chǔ),以及后來研發(fā)出來的超大規(guī)模的積體電路也成為了第四代計(jì)算機(jī)的主要部件之一。1972年4月1日,8008處理器誕生,七六年,史蒂夫?喬布斯和史蒂夫?沃茲尼亞克成立蘋果電腦公司。并推出了AppleI。發(fā)布1977年5月,蘋果II誕生。8位8088處理器于1979年被研發(fā)出來。微型計(jì)算機(jī)(也就是我們所用的計(jì)算機(jī))于1982年開始以爆炸般的速度大量的涌入各個(gè)家庭和學(xué)校。同年2月,英特爾發(fā)布80286。時(shí)鐘頻率達(dá)到20MHz,同時(shí)還加入了保護(hù)模式,能夠訪問640KB的存儲(chǔ)器[17]。2.1.2電腦游戲電腦游戲是相對(duì)于街機(jī)游戲和主機(jī)游戲的概念而言的,是指在個(gè)人計(jì)算機(jī)上運(yùn)行的軟件,是一種本身能夠提供娛樂功能的計(jì)算機(jī)軟件。電腦游戲業(yè)的發(fā)展離不開計(jì)算機(jī)硬件,電影,計(jì)算機(jī)軟件,互聯(lián)網(wǎng)等產(chǎn)業(yè)的發(fā)展,甚至是與這幾個(gè)產(chǎn)業(yè)的發(fā)展關(guān)系甚是緊密。電腦游戲?yàn)樗械挠螒蛲婕覀兲峁┝艘粋€(gè)虛擬的空間,可以說是讓一個(gè)人從一定的程度上脫離掉現(xiàn)實(shí)的世界,在另一個(gè)異世界中扮演著在現(xiàn)實(shí)世界中無法扮演或者想象的人物。與此同時(shí),計(jì)算機(jī)多媒體技術(shù)的快速發(fā)展,使得游戲給人更多更好的體驗(yàn)與享受。電腦游戲作為現(xiàn)代計(jì)算機(jī)技術(shù)的產(chǎn)物,現(xiàn)在正在以其特有的方式占據(jù)了娛樂領(lǐng)域的主要板塊。我們必須承認(rèn),為什么廣大的用戶會(huì)在那么多的休閑方式中選擇這個(gè)只能在狹小的空間進(jìn)行休閑的方式,游戲其本身的強(qiáng)大的吸引力就是主要的原因之一。游戲的吸引力主要是它在使玩家消磨時(shí)間的同時(shí)還可以讓一個(gè)人在緊張的生活環(huán)境下得到一個(gè)緩沖,讓人們繃緊的神經(jīng)得到放松。同時(shí)還可以促進(jìn)人與人之間的溝通與交流,讓我們能認(rèn)識(shí)到更多的朋友,甚至可以達(dá)到跨省,跨地域,甚至跨國之間的游戲。與之相對(duì)應(yīng)的是,隨著人們生活水平的不斷提高與日益增長的精神文明建設(shè),計(jì)算機(jī)相應(yīng)的硬件設(shè)備等也在不斷的升級(jí),相對(duì)應(yīng)的游戲的效果也是越來越好,而游戲產(chǎn)業(yè)作為一個(gè)新型的產(chǎn)業(yè),已經(jīng)成為經(jīng)濟(jì)增長的主力軍,成為了經(jīng)濟(jì)騰飛的“第四產(chǎn)業(yè)”了。電腦游戲的興起與20世紀(jì)60年代電子計(jì)算機(jī)在美國大學(xué)校園的普及有著密切的聯(lián)系。當(dāng)時(shí)的環(huán)境背景造就了一大批的編程高手。1962年,美國一所高校的名叫史蒂夫?拉塞爾的,在DEC公司所生產(chǎn)的計(jì)算機(jī)上編寫了世界上第一款電腦游戲《宇宙戰(zhàn)爭》。游戲界人士普遍認(rèn)為,史蒂夫?拉塞爾是電腦游戲的發(fā)明人。在20世紀(jì)70年代,隨著計(jì)算機(jī)技術(shù)的發(fā)展,其建造成本也變得越來越低。1971年,被稱為“電子游戲之父”的諾蘭?布什內(nèi)爾創(chuàng)造了第一臺(tái)商業(yè)化的電子游戲機(jī)。隨后,他更是創(chuàng)辦了世界上第一家電子游戲公司—Atari。但在20世紀(jì)70年代,蘋果電腦的問世才使得電腦游戲向著商業(yè)化而轉(zhuǎn)變。雖然這個(gè)時(shí)候的電腦游戲的圖形是很不起眼,但游戲類型化已經(jīng)開始逐步顯現(xiàn)出來了。在20世紀(jì)80年代和90年代,隨著計(jì)算機(jī)軟硬件技術(shù)的不斷提升,個(gè)人電腦的應(yīng)用也越來越廣泛,多媒體技術(shù)已經(jīng)開始逐漸成熟,電腦游戲已經(jīng)成為技術(shù)進(jìn)步的先驅(qū)。3DFX公司所生產(chǎn)的3D顯卡也給這個(gè)快速崛起的行業(yè)帶來了一場(chǎng)不大不小的革命。進(jìn)入2000年以后,互聯(lián)網(wǎng)的普及為電腦游戲產(chǎn)業(yè)的發(fā)展提供了強(qiáng)大的助力,隨著互聯(lián)網(wǎng)的不斷發(fā)展,多人大型在線游戲成為了一座新的“金山”,使得很多廠商都開始研發(fā)相關(guān)的游戲。隨之而來的,在世界各地也開始舉辦了很多各式各樣的電子競技比賽,并且創(chuàng)造了相當(dāng)可觀的利益收入。之后的游戲各大開發(fā)廠商更是開發(fā)一些能在網(wǎng)頁上玩網(wǎng)頁游戲,給一些不想安裝游戲客戶端的玩家?guī)砹烁R?。步?010年,根據(jù)在世界各地掀起的手機(jī)熱潮,很多原來開發(fā)電腦游戲的游戲開發(fā)商開始手機(jī)游戲過渡,同電腦游戲以及網(wǎng)絡(luò)游戲各據(jù)一腳,形成了三足鼎立的局面。現(xiàn)在,很多的小游戲和網(wǎng)頁游戲越來越受到用戶的喜愛,除了游戲本身的操作方法簡單之外,最為關(guān)鍵的一點(diǎn)就是其并不像其他游戲那樣也需要繁瑣的注冊(cè)以及長時(shí)間的下載過程,而且很多游戲也都是經(jīng)典之作。由于移動(dòng)互聯(lián)網(wǎng)的不斷進(jìn)步與發(fā)展,傳統(tǒng)的網(wǎng)絡(luò)游戲已經(jīng)不能緊跟著時(shí)代的發(fā)展趨勢(shì)。而網(wǎng)頁游戲以其并沒有客戶端的優(yōu)勢(shì),確立了未來的主導(dǎo)方式將會(huì)是以網(wǎng)頁游戲?yàn)榛A(chǔ)的網(wǎng)絡(luò)游戲市場(chǎng)[17]。2.1.3連連看連連看,也稱為對(duì)對(duì)卡,是一種按照?qǐng)D案匹配去操作的益智游戲,這個(gè)游戲的表現(xiàn)形式不止一種,如網(wǎng)絡(luò)游戲,紙牌類游戲或者電子游戲)。和“發(fā)現(xiàn)的兩個(gè)圖片的不同之處”類似,都是一個(gè)鍛煉眼力及耐心的益智類型的游戲。最初的設(shè)計(jì)是有許多圖案,但是它們的內(nèi)容都不一樣,每個(gè)圖案所對(duì)應(yīng)的都有兩張顯示內(nèi)容一樣的卡片,將圖片打亂順序,然后將卡片背面朝上,平鋪在桌子上,玩家按照一定的順序來進(jìn)行卡片的抽取,但是玩家每次只能抽取兩張卡片,如果兩張卡片所顯示的圖案不一樣則將兩張卡片恢復(fù)到拿之前的狀態(tài),若是揭開的兩張卡片圖案一樣,則把這兩張圖案相同的卡片取走。直到桌面上沒有卡片時(shí)視為游戲結(jié)束。判斷游戲輸贏的條件是玩家所獲得的卡片的數(shù)量的多少,獲得最多的那個(gè)玩家被視為游戲的獲勝者。由于其能在一定的程度上鍛煉人們的邏輯思維能力,所以這個(gè)游戲也經(jīng)常用在鍛煉幼兒的思維能力,用于幼兒的啟蒙教育之上。連連看還有一種玩法是用在字圖上,這種連連看是專門用于教導(dǎo)幼兒識(shí)字認(rèn)圖的,和一般的連連看不一樣是,它的玩法并不是將兩張圖片內(nèi)容一樣的匹配,而是將文字與圖片進(jìn)行匹配。還有一種連連看是將兩個(gè)內(nèi)容相關(guān)的卡片(也可以是文字或者圖片)配對(duì)。也有的地方用撲克牌進(jìn)行這個(gè)游戲,即把兩張點(diǎn)數(shù)相同的紙牌視為兩張相同的圖案[18]。電腦版的連連看游戲的類型基本都是網(wǎng)頁版的,或者就是一個(gè)小于20MB的小游戲,其游戲規(guī)則就是在一堆雜亂無序的圖片當(dāng)中將兩張圖片內(nèi)容一樣并且能按照一定規(guī)則連線的圖片找到并點(diǎn)擊這兩張圖片將其消除?!斑B連看”經(jīng)歷了三個(gè)階段的轉(zhuǎn)變,從最開始的需要人們自己手動(dòng)操游戲的準(zhǔn)備工作作的桌面游戲衍變到可以不用人們自己去手動(dòng)操作準(zhǔn)備工作的電腦游戲再到后來的在游戲過程中可以和來自世界各地的玩家進(jìn)行互動(dòng)的社交類游戲?!斑B連看”游戲起源于臺(tái)灣的桌面小游戲,被傳播到到大陸以后風(fēng)靡一時(shí)。這時(shí),人們看到了這個(gè)游戲的廣大市場(chǎng),開發(fā)這個(gè)游戲的程序員趨之若鶩,給人們帶來了各種不同版本的“連連看”。在這期間,最著名的就是顧方所編寫的連連看了,“阿達(dá)連連看”用它那其精良的制作和較為不錯(cuò)的游戲畫面深受廣大用戶的喜愛。隨著閃客技術(shù)的問世及普及,網(wǎng)絡(luò)上出現(xiàn)了各種基于在線Flash版的“連連看”?!肮哌B連看”,“水晶連連看”,“寵物連連看”等等,其中“水晶連連看”在某段時(shí)間一直廣受人們的喜愛,玩這款連連看的主要人群是廣大的女性玩家,而且她們喜歡這款連連看的最主要原因就是因?yàn)槠溆螒蚪缑嬗谟螒蛩褂玫膱D片很好看。2008年,社交網(wǎng)絡(luò)平臺(tái)突然走紅,隨之而來的平臺(tái)大眾化讓人們的業(yè)余生活更加的豐富了起來。在這基礎(chǔ)上,很多小型經(jīng)典游戲被搬到了社交網(wǎng)絡(luò)上,“連連看”就是其中之一。人們將“連連看”游戲與個(gè)人主頁相結(jié)合,使得這個(gè)經(jīng)典小游戲更加的受到了人們的歡迎與喜愛,其傳播速度之快簡直讓人無法想象。其中“寵物連連看”以其可愛的圖形化界面深受廣大網(wǎng)民的喜愛。

3相關(guān)技術(shù)支持及介紹3.1Java3.1.1Java語言背景介紹Java是一門計(jì)算機(jī)編程語言,有三大特性,分別是:封裝,繼承,多態(tài),被廣泛應(yīng)用于企業(yè)級(jí)Web應(yīng)用程序開發(fā)和移動(dòng)端應(yīng)用程序的開發(fā)。在Sun公司任職的詹姆斯?高斯林等人于20世紀(jì)90年代出研究出來Java的雛形,并以O(shè)ak來命名,目標(biāo)設(shè)定在家用電器之類的小型系統(tǒng)操控的程序語言,在電視,烤面包機(jī),鬧鐘,電話等小型家用電器的控制與通信。但是由于當(dāng)時(shí)智能家電的市場(chǎng)要求不是很高,Sun公司當(dāng)時(shí)就放棄了這個(gè)計(jì)劃。上世紀(jì)90年代,WorldWideWeb被提出,隨后互聯(lián)網(wǎng)行業(yè)飛速發(fā)展,Sun公司突發(fā)奇想,打算將Oak應(yīng)用在互聯(lián)網(wǎng)上,于是他們將Oak改造成了能應(yīng)用于互聯(lián)網(wǎng)上的程序。并在1995年5月重新推出,舍棄了原來的名字Oak,將其改名為Java。由于Java語言的特性,致使其的發(fā)展速率完全不低于互聯(lián)網(wǎng)的發(fā)展速率,現(xiàn)如今的Java已經(jīng)成為了一門不可或缺的編程語言,成為了在編程語言界的主流語言之一。Java的編程風(fēng)格與C++的十分類似,兩者的核心都是面向?qū)ο?,但是Java遺棄C++中一些容易引發(fā)錯(cuò)誤的操作,最明顯的就是使用引用操作代替C++中的指針操作,同時(shí)還將運(yùn)算符重載和多重繼承這兩個(gè)特性遺棄,并使用接口代替了多重繼承。由于在編程時(shí)肯能會(huì)占用大量的內(nèi)存空間,Java還引入了垃圾回收機(jī)制,用于釋放掉那些在程序不操作時(shí)無用的對(duì)象所占用的內(nèi)存空間。Sun公司為Java的解釋是:“Java是一種簡單的,面向?qū)ο蟮?,分布式的,解釋的,健壯的,安全性和系統(tǒng)無關(guān),可移植性的,高性能的,多線程和動(dòng)態(tài)的編程語言”。Java語言與一般的編譯語言,直譯語言不同的地方在于:Java首先將代碼源碼轉(zhuǎn)換成字節(jié)碼,然后將其翻譯成JVM的可執(zhí)行文件,這些可執(zhí)行文件能在各種不同的JVM上面運(yùn)行。從而實(shí)現(xiàn)了其跨平臺(tái)性的特性。雖然在早期這樣使得Java的速率十分低下,但是隨著Java的不斷發(fā)展,在J2SSE1.4.2版本中,Java的速率已然得到了提升。和其他的編程語言不通的是,Java在被開發(fā)之初就被SUN公司作為一個(gè)開源的編程語言。使用Java語言進(jìn)行開發(fā)的公司在開發(fā)之前就被告知所研發(fā)的Java程序必須能夠相互兼容。“Java是靠大家的力量而并非是一個(gè)公司的力量”是Sun公司的口號(hào)之一,這一口號(hào)也獲得了廣大Java用戶的一致好評(píng)。這與微軟公司所提倡的封閉模式是大相徑庭的,與此同時(shí),微軟也推出了.NET平臺(tái)和模仿Java語言的C#與之競爭。由于經(jīng)營不善,Sun公司開始虧損,最終被甲骨文公司收購,而風(fēng)靡一時(shí)的Java也成為了甲骨文公司的產(chǎn)品。3.1.2Java語言特性面向?qū)ο竺嫦驅(qū)ο笫荍ava編程語言的標(biāo)志之一,是一種軟件的開發(fā)方法。其主要就是將所有的事物都轉(zhuǎn)化為“對(duì)象”,然后通過一些方法來進(jìn)行編程。在編程時(shí),每個(gè)對(duì)象上都要寫代碼和數(shù)據(jù)。面向?qū)ο筮@種編程方法的出現(xiàn)使得人們?cè)诰幊痰倪^程中的設(shè)計(jì)思路和操作變得十分簡潔,同時(shí)也將程序的安全性得到了提升。跨平臺(tái)性Java之所以受歡迎的一個(gè)主要特點(diǎn)就是跨平臺(tái)性,跨平臺(tái)性的實(shí)現(xiàn)使得Java編程變得十分簡便。你可以用Java編寫完程序以及在編譯之后再不用對(duì)其進(jìn)行修改就可以在別的地方運(yùn)行。垃圾回收機(jī)制垃圾回收機(jī)制是用來將那些在程序不操作時(shí)無用的對(duì)象所占用的內(nèi)存空間釋放掉,C++最被人厭惡的就是因?yàn)槠洳荒軐⒃诰幊痰倪^程中所占用的內(nèi)存空間進(jìn)行及時(shí)的釋放,導(dǎo)致隨著編程時(shí)間的變長所占用的內(nèi)存空間越來越多。對(duì)于一些編程高手而言,他們會(huì)在剛開始編程的時(shí)候配置一塊內(nèi)存地址放在堆棧上,然后在不需要的時(shí)候會(huì)對(duì)其進(jìn)行釋放,而一些新手和菜鳥在很多的時(shí)候會(huì)忘記刪除這個(gè)內(nèi)存地址,從而導(dǎo)致程序在運(yùn)行的過程中會(huì)變得十分的不穩(wěn)定,最終有可能會(huì)導(dǎo)致程序崩潰。所以很多C++的高手在編寫程序時(shí)往往都會(huì)將刪除后的指針的值設(shè)置為NULL,然后在刪除之前確定一個(gè)指針的值是否為NULL。接口和抽象類Java是一個(gè)面向?qū)ο蟮木幊陶Z言,其最主要的特征之一就是抽象,在Java中,類和接口就是用來表現(xiàn)其抽象的特征的。抽象類是指沒有具體的實(shí)現(xiàn)方法,只能用來聲明。接口是在編程中為人們提供一個(gè)調(diào)用的方法或者是函數(shù)[19]。3.2EclipseEclipse是一款主要用于編寫Java的跨平臺(tái)的開源的開發(fā)集成環(huán)境。雖然最初開發(fā)這個(gè)軟件的開發(fā)者們主要是想將其用于Java的開發(fā),但隨著時(shí)間的推移,現(xiàn)在也可以通過編寫的插件來進(jìn)行PHP,C++以及Python等其他編程語言的開發(fā)。Eclipse平臺(tái)其本身追根到底來說只是一個(gè)框架,但是這個(gè)框架卻能兼容插件的使用,這是這一大特性,使得Eclipse的靈活性十分高,所以這就導(dǎo)致很多的軟件開發(fā)者都在用Eclipse框架作為自己開發(fā)的開發(fā)IDE的工具。Eclipse最早是由IBM研究出來,用來代替一款名為VisualAgeforJava的商業(yè)軟件的開發(fā)環(huán)境。但是卻在2001年11月將其免費(fèi)送給開源社區(qū)。2003年,Eclipse3.0問世。2007年6月,Eclipse3.3穩(wěn)定版發(fā)布;次年6月3.4版發(fā)布;次年6月發(fā)布3.5版;2010年6月發(fā)布其3.6版;2011年6月發(fā)布了代號(hào)為Indigo的3.7版;2012年6月發(fā)布代號(hào)為朱Juno的4.2版;2013年6月發(fā)布了代號(hào)為Kepler的4.3版;在2014年6月發(fā)布代號(hào)為Luna的4.4版;預(yù)計(jì)將于2015年6月項(xiàng)目發(fā)布為版本為4.5的Mars[20]。

4需求相關(guān)設(shè)計(jì)4.1系統(tǒng)需求分析在這個(gè)連連看游戲上,在進(jìn)入游戲之后將會(huì)由一個(gè)特定的算法來將圖片進(jìn)行排序,并將圖片的位置進(jìn)行一個(gè)標(biāo)記,然后判斷他們是否相同。并記錄下每個(gè)圖片的坐標(biāo),方便判斷圖片能否可以連接。游戲擁有“退出”功能,點(diǎn)擊關(guān)閉按鈕后,程序?qū)?huì)執(zhí)行退出命令后終止同時(shí)關(guān)閉窗口。還有一個(gè)“開始”的按鈕,點(diǎn)擊這個(gè)按鈕,無論游戲進(jìn)行到什么程度都將會(huì)重新開始?,F(xiàn)在很多的連連看游戲都會(huì)有游戲時(shí)間,雖然增加了游戲的可玩性,但是會(huì)讓廣大玩家失去了一部分的游戲體驗(yàn)。而這款連連看沒有時(shí)間限制,這樣能使玩家獲得最大程度的游戲體驗(yàn)。在游戲界面的頂端處還有一個(gè)計(jì)分功能,當(dāng)玩家將消除兩張相同的圖片之后都后獲得相應(yīng)的游戲分?jǐn)?shù)。4.2程序開發(fā)環(huán)境操作系統(tǒng):Windows8.1開發(fā)工具:JDK1.6編譯工具:Eclipse4.3.04.3系統(tǒng)功能這款連連看游戲主要實(shí)現(xiàn)如下幾項(xiàng)功能:(1)游戲界面友好美觀(2)玩家進(jìn)行游戲時(shí)方便,快捷,靈活(3)圖片排列,消除清晰(4)計(jì)分功能自動(dòng)完成(5)擁有提示功能和自動(dòng)消除功能(6)游戲程序運(yùn)行穩(wěn)定4.4模塊設(shè)計(jì)4.4.1總體框架介紹通過之前的分析,這個(gè)游戲的總體框架將是如下圖4-1所展示的幾個(gè)模塊:圖4.1游戲總體框架4.4.2算法設(shè)計(jì)介紹1.圖片消去方法的介紹在驗(yàn)證兩張圖片如何消去的判斷中,必須使這兩張圖片滿足如下的幾個(gè)條件,那就是兩者都是匹配且可以通過線進(jìn)行連接(且這線最多不會(huì)超過由三條線組成)。如圖4-2所示分為以下三種情況:在這三種情況中,我們還需要三個(gè)測(cè)試,這三個(gè)分別在一條直線路徑的檢測(cè)。因此,將會(huì)有三條路徑產(chǎn)生。如果在這三條路徑上都是空的,這樣就是這三種路徑(兩個(gè)轉(zhuǎn)折點(diǎn))將兩個(gè)按鈕連接起來了。情況1:相鄰的兩個(gè)情況2:如果兩個(gè)按鈕不相鄰的話,此時(shí)就在一個(gè)按鈕的同行中找到一個(gè)空按鈕。(1).找到那個(gè)空按鈕之后再看另一個(gè)按鈕的橫行到這個(gè)空按鈕所在的列是否有按鈕。(2).如果沒有,那么看一下第一個(gè)按鈕與其同行的按鈕之間是否有按鈕。(3).如果還是沒有的話,再從與第一個(gè)按鈕垂同行的那個(gè)空按鈕豎向到與第二個(gè)按鈕的同行判斷是否有空按鈕,如果沒有的話,那么就判斷成兩個(gè)按鈕之間的路徑能夠連通,即可以將兩個(gè)按鈕進(jìn)行消除。情況3:若當(dāng)情況2出現(xiàn)問題后,再從第一個(gè)按鈕的同一列再次找到一個(gè)空的按鈕。(1).找到空按鈕之后判斷第二個(gè)按鈕垂直方向到這個(gè)空按鈕所在的行上是否存在空按鈕,(2).如果不存在,此時(shí)再去看看第一個(gè)按鈕,它的所在列的那個(gè)空按鈕所在的行到第二個(gè)按鈕所在的列是否存在空按鈕。(3).如果還是沒有的話,那么就再從與第一個(gè)按鈕在同一行的空按鈕橫向到與第二個(gè)按鈕同列是否存在按鈕。如果沒有的話那么就可以判斷為兩個(gè)按鈕可以消去。如何過以上三種情況都無法實(shí)現(xiàn),那么就說明這兩個(gè)按鈕之間不存在連線使得這兩個(gè)按鈕能夠正常消去。圖4.2游戲圖片消除方法2.圖片加載方法的介紹在對(duì)圖片進(jìn)行加載和根據(jù)該圖片在場(chǎng)景中所在的位置將其打亂的主要方法是Map類。在這個(gè)類中,使用一個(gè)數(shù)組中并用數(shù)字標(biāo)記的方法來記錄和加載圖片的類型,在其每次加載圖片的過程中保證每張圖片均是連續(xù)加載兩次,以確保加載成對(duì)的圖片。然后使用數(shù)組的隨機(jī)方法將其打亂。3.界面顯示的設(shè)計(jì)由于這個(gè)界面所使用NBA球隊(duì)的隊(duì)徽為圖片,所以在其主界面的頂端顯示為“NBA連連看”,在界面下方是一個(gè)十一行十八列的表格,但是這個(gè)表格是隱藏的,然后將圖片成對(duì)并且隨機(jī)的放入在表格中。但是這個(gè)表格的最外面的一行一列是不放入圖片的。這樣的做法是為了使游戲連線的算法更加容易的實(shí)現(xiàn)。所以在進(jìn)行游戲的時(shí)候只能顯示十行十七列。地圖的設(shè)計(jì)是使用GUI編程,定義在了一個(gè)十行十七列的網(wǎng)格中,使用一些圖片,然后隨機(jī)產(chǎn)生一些圖片,以二維數(shù)組將它們隨機(jī)排放到十行十七列的布局網(wǎng)格中,注重二維數(shù)組下標(biāo)和網(wǎng)格布局的行列都要相同。

5游戲相關(guān)設(shè)計(jì)5.1游戲界面設(shè)計(jì)在之前就介紹過,這個(gè)界面是基于GUI所設(shè)計(jì)的,是一個(gè)十一行十八列的表格,但是為了讓算法更容易實(shí)現(xiàn)形,所以只能顯示十行十七列。其圖化界面如圖5-1所示,相關(guān)代碼如圖5-2所示圖5.1游戲界面圖5.2游戲界面相關(guān)代碼5.2相關(guān)功能實(shí)現(xiàn)判斷兩個(gè)圖片能否消去的相關(guān)代碼,如下圖5-3,5-4,5-5所示:圖5.3游戲消除相關(guān)代碼圖5.4游戲消除相關(guān)代碼圖5.5游戲消除相關(guān)代碼6測(cè)試與分析6.1游戲界面展示在游戲的界面上有一個(gè)重新排列的功能,當(dāng)找不到兩個(gè)一樣的圖片時(shí),即可點(diǎn)擊這個(gè)按鈕,此時(shí)游戲?qū)?huì)剩余的圖片進(jìn)行重新排列。如下圖6-1和6-2所示:圖6.1游戲界面圖6.2游戲界面游戲完成畫面如圖6-3所示:圖6-3游戲完成畫面6.2測(cè)試中遇到的問題與分析6.2.1算法設(shè)計(jì)介紹在驗(yàn)證兩張圖片能否被消除的時(shí)候,我們必須使這兩張圖片同時(shí)滿足如下的兩個(gè)條件,那就是兩張圖片必須一樣且可以連線。所以在這里首先要進(jìn)行測(cè)試,如果條件不成立,就不需要連線檢驗(yàn)了,也可避免很多不必要的操作。6.2.2異常的相關(guān)與處理(1)Java空指針異常這個(gè)異常是說明程序出現(xiàn)了空指針,在開始使用Java編程時(shí)很容易遇到該異常,常見有兩種可能來引發(fā)這個(gè)異常,一個(gè)是最初就沒有定義該對(duì)象;另一種是調(diào)用該對(duì)象但是卻沒有對(duì)其進(jìn)行初始化,使用數(shù)組和創(chuàng)建圖像的時(shí)候會(huì)出現(xiàn)此異常。剛開始學(xué)JAVA,由于時(shí)間的原因還不能準(zhǔn)確的區(qū)分?jǐn)?shù)組初始化與數(shù)組元素初始化。所以很容易在這個(gè)地方發(fā)生錯(cuò)誤。數(shù)組初始化是數(shù)組分配需要的空間,由于是引用類型,其中的元素可以理解為類中的成員變量。(2)Java構(gòu)造方法異常這個(gè)異常的出現(xiàn)說明了方法的參數(shù)產(chǎn)生了問題,該錯(cuò)誤是一些類庫中的方法被附的值非法或是發(fā)生沖突。如果在一個(gè)方法中其規(guī)定的值都是整數(shù),而你卻將一個(gè)無理數(shù)的值賦給了該方法中。然后,你只需要返回調(diào)用方法來檢查參數(shù)值范圍存在正不正確即可。(3)Java數(shù)組越界異常這個(gè)異常是說明所定義的數(shù)組的下角標(biāo)超出了定義數(shù)組時(shí)的最大值,是指在調(diào)用數(shù)組的時(shí)候沒有注意到當(dāng)前數(shù)組所能取到的最大值而造成了溢出。一般是不會(huì)出現(xiàn)該異常,但是,如果是使用變量來定義下角標(biāo)或定義數(shù)組的長度時(shí),就會(huì)很容易引發(fā)此異常,解決的方法就是仔細(xì)檢查一下數(shù)組的取值范圍。(4)Java邏輯運(yùn)算異常這種異常的含義是指一個(gè)邏輯運(yùn)算發(fā)生了異常,例如在運(yùn)算時(shí)將零作為了除數(shù),此時(shí)就會(huì)拋出此異常,出現(xiàn)這種錯(cuò)誤只需要檢查程序邏輯的操作和是否有什么算法定義定義錯(cuò)了即可。在設(shè)計(jì)該程序的過程中也是遇到了上述的異常。所產(chǎn)生的原因歸根結(jié)底在于平時(shí)編寫相關(guān)代碼的代碼量不夠多,最開始碰到會(huì)讓人抓耳撓腮,感覺無從下手。但是隨后慢慢的就會(huì)發(fā)現(xiàn)都是一些無關(guān)緊要的小問題了。這個(gè)程序沒有特意編寫有關(guān)異常處理的代碼,只考慮“死鎖”的相關(guān)問題,但是“死鎖”現(xiàn)象卻沒有出現(xiàn),所以沒有寫相應(yīng)的處理方法。但是“死鎖”問題在這個(gè)程序中最可能出現(xiàn)的情況就是判斷圖片內(nèi)容一樣的兩個(gè)圖片如何消去的問題。最簡單的辦法就是對(duì)于還沒有消除的圖片,計(jì)算一下它們是否可以被消去。7結(jié)論隨著時(shí)代的發(fā)展,計(jì)算機(jī)也越來越普及。網(wǎng)絡(luò)游戲已經(jīng)成為了人們?cè)谏钪胁豢扇鄙俚脑刂唬瑤缀趺總€(gè)人用電腦玩網(wǎng)絡(luò)游戲,由于每個(gè)人的思維不同,大家所玩的網(wǎng)絡(luò)游戲也都不一樣,現(xiàn)在的網(wǎng)絡(luò)游戲類型也是越來越豐富。我的課程設(shè)計(jì)就是目前網(wǎng)絡(luò)上非常流行的連連看游戲。游戲“連連看”,就像它的名字所提示的是要找到相關(guān)的東西,在互聯(lián)網(wǎng)上的連連看游戲一般都是小游戲,就是要找到兩個(gè)相同的東西,在一定的規(guī)則下可以進(jìn)行相關(guān)的連線?,F(xiàn)在的網(wǎng)絡(luò)小游戲以及網(wǎng)頁游戲越來越受到網(wǎng)民們的追捧,除了游戲的方法簡單,同樣的也相當(dāng)經(jīng)典。連連看游戲就是這其中之一。無論去哪個(gè)網(wǎng)頁游戲網(wǎng)站,連連看游戲總能在最受玩家歡迎的小游戲榜單的前五名占據(jù)一席之地。休閑,樂趣和益智是連連看小游戲印在大家腦海中標(biāo)簽。不論男女老少,工薪白領(lǐng),都對(duì)這款小游戲情有獨(dú)鐘,連連看是一款適合大眾的經(jīng)典網(wǎng)絡(luò)休閑小游戲。這一次,我們的設(shè)計(jì)有通用連連看游戲規(guī)則的功能是相同的網(wǎng)絡(luò)上的游戲。在這課程設(shè)計(jì)的過程中,雖然十分的辛苦,但也收獲了很多。在互聯(lián)網(wǎng)上查閱了很多相關(guān)的知識(shí)讓我學(xué)會(huì)且掌握更多有關(guān)Java的知識(shí),如怎樣使用Swing組件,事件處理等,此外,還學(xué)習(xí)了很多新的知識(shí)。從最早的不知道如何下手到后面寫需求分析等等之類的,當(dāng)然這個(gè)游戲還有很多的不足之處

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論