版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)設計(論文)畢業(yè)設計(論文) 題目題目 基于基于 java 的連連看游戲的連連看游戲 設計與實現(xiàn)設計與實現(xiàn) 系系 別別 專專 業(yè)業(yè) 班班 級級 姓姓 名名 學學 號號 指導教師(職稱)指導教師(職稱) 日日 期期 蘭州工業(yè)高等??茖W校蘭州工業(yè)高等??茖W校 畢業(yè)設計(論文)任務書畢業(yè)設計(論文)任務書 畢業(yè)設計(論文)題目基于 java 的連連看游戲設計與實現(xiàn) 課題內容性質軟件開發(fā) 課題來源性質教師收集的結合生產實際的課題設計/論文 校內(外)指導教師職 稱工作單位及部門聯(lián)系方式 朱亞玲 講師軟件工程系軟件技術教研室一、題目說明(目的和意義): 游戲產業(yè)作為現(xiàn)代電腦
2、電子技術的產物,正在以其獨特的魅力在全世界的娛樂領域占據(jù)主流位置, 我們在承認廣大娛樂網(wǎng)民的選擇空間狹小的同時,也必須明確的一點就是游戲本身所具有的強大的吸引 力。游戲的吸引力主要在于,它在讓玩家打發(fā)時間的同時,可以讓人在緊張工作之余帶來最大程度的放 松,也可以增進人們之間的交流、溝通,通過游戲還可以認識更多的朋友,也可以到達跨省、跨市、甚 至跨國間人們互相娛樂的目的,從而滿足了人們休閑的需要。而且游戲產業(yè)促動高科技技術不斷升級, 作為經濟增長的一大支撐點,已經成為經濟騰飛的“第四產業(yè)” 。 現(xiàn)在小游戲、網(wǎng)頁游戲越來越受網(wǎng)民歡迎,除了玩的方法簡單外(不像其他游戲還需要注冊下載繁 瑣過程) ,很
3、多游戲不乏經典。由于手機互聯(lián)網(wǎng)的不斷發(fā)展,傳統(tǒng)網(wǎng)游已經不能跟上時代的潮流,而網(wǎng)頁 游戲無需客戶端的特性,決定了將來會是 web 游戲主宰網(wǎng)游市場。作為最基本的網(wǎng)頁游戲之一, “連連看” 游戲的設計與實現(xiàn)可以積累開發(fā)網(wǎng)頁游戲的經驗,完善開發(fā)思路,為以后更高層次上的網(wǎng)頁游戲開發(fā), 打下堅實的基礎,更好的推動網(wǎng)頁游戲的發(fā)展。 正是因為如此,通過本次畢業(yè)設計,讓學生掌握如何制作一個游戲軟件,以及制作游戲軟件的整個 流程,制作游戲軟件的步驟,讓學生熟悉項目開發(fā)的完整過程,為即將到來的就業(yè)工作打下基礎。另外 也通過本次設計將三年來所學的專業(yè)知識和其他方面的知識融入到實際應用中,在實際運用中學習和掌 握 j
4、ava 程序開發(fā)的全過程,進一步熟悉掌握 java 程序設計語言的基礎內容、基本技能和方法,同時培 養(yǎng)學生進行分析問題、解決問題的能力;培養(yǎng)學生進行設計分析、設計方法、設計操作與測試、設計過 程的觀察、理解和歸納能力的提高。 二、設計(論文)要求(工作量、內容): 【設計內容】: 通過 java 編一個連連看程序,通過鼠標點擊把兩張一樣的牌,用三根以下的線連起來使其消掉。程序 實現(xiàn)以下幾個功能: 1.實現(xiàn)個人小型休閑游戲連連看; 2.開始游戲后,隨機生成圖片(或字符)位置,要求是至少兩兩相同,位置隨機打亂; 3.游戲規(guī)則是在一定時間內將相同字符或圖片的牌連接,但要滿足只能至少單邊無阻礙呈直線趨
5、 勢連接,否則視為無效,若連接一對成功就消失于界面,繼續(xù)游戲,直到游戲結束或時間用完。 4.游戲過程中,遇到困難難以尋找下一符合要求的一對牌,可按左下按鈕重置重新排列,方可繼 續(xù)游戲。 5.可點擊“退出游戲”按鈕,結束游戲。 6.游戲中可使用道具。 可在以下內容中進行選擇,也可根據(jù)實際情況,自選內容,但需事先和指導教師進行溝通。 參考題目:java 編程實現(xiàn)貪吃蛇游戲,打地鼠游戲。 【設計要求】: 1.系統(tǒng)能夠提供友好的用戶界面,使操作人員的心情放松; 2.系統(tǒng)具有良好的運行效率,能夠得到快速發(fā)現(xiàn)自我的目的; 3.系統(tǒng)應有良好的可擴充性,可以容易的轉入其它系統(tǒng)應用; 4.平臺的設計具有一定的靈
6、活性。 【實施步驟】: 1.熟悉 java 語言、ultraedit-32 開發(fā)工具、eclipse 開發(fā)工具(占工作量的 5%) 2.游戲框架的搭建(占工作量的 15%) ; 3.菜單的制作(占工作量的 10%) ; 4.ui 的設計(占工作量的 10%) ; 5.算法的設計(占工作量的 15%) ; 6.算法的實現(xiàn)(占工作量的 30%) ; 7.系統(tǒng)調試:各小組進行功能整合,由小到大地調試功能模塊,完成整個系統(tǒng)要求。(占工作量的 10%) 8.功能完善和改進:做最后的修繕和調整,使得功能全面、運行流暢、貼近實際運行環(huán)境。(占 5%) 【畢業(yè)論文】: 圍繞“連連看”游戲的分析、設計與實現(xiàn),撰
7、寫論文,論文不少于 30000 字。 論文撰寫規(guī)范參考附件:蘭州工專論文撰寫規(guī)范(附件一).doc 【提交內容】: “連連看”游戲的可執(zhí)行文件和源碼。 畢業(yè)論文的電子稿和打印稿,答辯 ppt。 【注意事項】: 畢業(yè)設計的時間安排根據(jù)時間表,最后一周,檢查程序、交畢業(yè)設計論文;交畢業(yè)設計系統(tǒng) powerpoint 電子顯示文稿;按要求將畢業(yè)設計論文裝訂成冊。 指導老師打分方案:畢業(yè)設計成績=考勤*30%+論文*40%+技術實現(xiàn)*30%。 每周考勤一次,有特殊情況需向指導教師請假。 具體論文上交時間、論文答辯時間以系辦通知為準。 三、進度表 日 期內 容 第 15 周 查閱文獻,分析功能,確定基本
8、思路和設計內容,確定需求分析。 開發(fā)環(huán)境的搭建; 第 16 周 設計界面; 圖片的選取與隨機生成; 單擊控件的事件處理;時間控制;其他控件與功能; 第 17 周 算法路徑的實現(xiàn); 得分設置; 過關設置; 第 18 周完成系統(tǒng),做功能修繕和調整,編寫用戶手冊。 第 19 周 第 20 周 按要求完成論文,并上交論文,制作電子文檔,為答辯做準備。 完成日期 2011 年 1 月 6 日 答辯日期2011 年 2 月 21 日 四、主要參考文獻、資料、設備和實習地點及翻譯工作量: 【設備】:實踐基地資源、個人設備資源及實習地點的設備資源,按照設計要求進行配置和安裝。 【設計環(huán)境】: 軟件:windo
9、ws xp,jdk6.0 以上版本,eclipse5.0 以上版本。 硬件:以軟件安裝要求為準則,在設計的過程中確保程序調試的流暢。 【實習地點】:計算機實踐基地、學生選定的調式地點與學生自己考察的外部地點相結合。 【翻譯工作量】:對論文標題、關鍵字、摘要進行英文翻譯。 【參考文獻】: 1 張明新,周耿烈.java 語言程序設計. 重慶:重慶大學出版社,2004. 2 周曉聰,李文軍,李師賢.面向對象程序設計與 java 語言. 北京:機械工業(yè)出版社,2004. 3 bruce eckel.java 編程思想.北京:機械工業(yè)出版社,2007. 4 james cohoon,jack david
10、son.java 程序設計. 北京:清華大學出版社,2005. 5 steven holzner.java 技術內幕. 北京:機械工業(yè)出版社,2002. 6 張洪斌.java 程序設計百事通. 北京:清華大學出版社,2001. 7 夏先波.java jdk 實例寶典. 北京:電子工業(yè)出版社,2007. 8 吳其慶.java 程序設計經典教程. 北京:冶金工業(yè)出版社,2005. 9 耿祥義,張躍平.java 2 實用教程. 北京:清華大學出版社,2007. 10 蔡勇,姜磊,馬寧,倪文志.java 2 程序設計基礎教程與上機指導. 北京:清華大學出版社, 2005. 11 林建素,孟康健.ecl
11、ipse 開發(fā)學習筆記 (第 1 版).北京:電子工業(yè)出版社. 2008.4 12 李松林,陳華清,任鑫.eclipse 寶典 (第 1 版).北京:電子工業(yè)出版社. 2007.9 指導教師簽字教研室主任簽字主管系領導簽字 年 月 日年 月 日年 月 日 注:本任務書要求一式兩份,一份系部留存,一份報教務處實踐教學科。 摘要摘要 游戲發(fā)展至今已經有 30 多年歷史,在這個短暫的時期里,隨著硬件水平的提高,游戲 開發(fā)新技術層出不窮,經典游戲比比皆是。大部分的人一聽到連連看游戲,通常就會想到這 是一個小游戲。 連連看游戲,是指在一個區(qū)域內,分布著許多不同的圖片,通過點擊兩張相同的圖片并 符合一定的
12、規(guī)則消除它們的一個游戲。我們最常見的是在 qq 游戲大廳里的 qq 連連看,網(wǎng)絡 上也有許多各式各樣的單機版連連看游戲。在游戲的過程中,可以考慮下如何使用自己掌握 的程序去實現(xiàn)游戲的效果,并嘗試去開發(fā)屬于自己的連連看,這是一件十分愜意的事情。在 本章中,我們將詳細的教大家如何使用 java 去開發(fā)一款屬于自己的單機連連看。 本游戲采用 java 語言開發(fā),以 myeclipse 為開發(fā)平臺。游戲主界面是基于 gui(圖形 用戶界面)的開發(fā),使得游戲界面簡單清晰。并調用了其中的一些函數(shù),完成了事件的觸發(fā) 功能。希望通過這次開發(fā)設計出的連連看小游戲,給大家的生活帶來一點樂趣。 游戲通過定義動態(tài)的二
13、維數(shù)組,根據(jù)一定的算法實現(xiàn)規(guī)定的路徑判斷。 關鍵詞:連連看、小游戲、java、gui、數(shù)組 abstract game development has 30 years of history, in this short period, along with the hardware level, game development new technology emerge in an endless stream, classic games meet the eye everywhere. most of the people hear lianliankan game, they usu
14、ally think this is a small game. lianliankan game, refers to a region, the distribution of many different pictures, click through to two cards of the same picture and conform to certain rules to eliminate them in a game. it is most common in qq game hall qq lianliankan, the network also has a lot of
15、 every kind of stand-alone edition game. in the course of the game, can consider how to use their mastery of the program to achieve game effects, and try to develop their own look again and again, this is a very happy thing. in this chapter, we will detail the teach you how to use java to develop a
16、belongs to own stand- alone lianliankan. the game using java language development, take myeclipse as the development platform. the game s interface is based on the gui (graphical user interface ) development, which makes the game interface simple and clear. and call some of these functions, complete
17、d the event trigger function. hope that through this design lianliankan game, for everyone to bring to life a little fun. the game through the definition of the dynamic two-dimensional array, according to certain provisions of the path algorithm to determine. key words: lianliankan, game, java, gui,
18、 array 目錄目錄 摘要摘要.iv 第一章第一章 緒論緒論 .- 1 - 一 游戲產業(yè)介紹.- 1 - 二 游戲的發(fā)展概況.- 1 - 第二章第二章 連連看游戲描述連連看游戲描述 .- 2 - 一 游戲規(guī)則描述.- 2 - 二 游戲設計的目的.- 2 - 三 游戲可行性論證.- 2 - 第三章第三章 連連看游戲的分析與設計連連看游戲的分析與設計 .- 3 - 一 游戲的設計.- 3 - 1 功能設計.- 3 - 2 游戲模塊設計.- 3 - 3 算法模塊.- 4 - 4 界面顯示模塊.- 4 - 5 菜單控制模塊.- 4 - 6 地圖設計.- 5 - 7 算法設計.- 5 - 8 類的設計
19、.- 7 - 1)control.java 監(jiān)聽器類。.- 7 - .- 7 - 2)loadandsave.java 游戲數(shù)據(jù)部分。.- 7 - 3)model.java 驅動類。.- 7 - 4)gamepanel.java 繪制類。.- 7 - 5)imageloader.java 圖片加載器。.- 9 - 6)mainframe.java 主窗體繪制。.- 9 - 9 算法設計.- 9 - 二 主要問題.- 11 - 三 技術要求.- 11 - 四 設計要求.- 11 - 1 開發(fā)環(huán)境.- 11 - 2 理論基礎.- 11 - 3 開發(fā)目標.- 11 - 第四章第四章 游戲運行及測試分
20、析游戲運行及測試分析 .- 12 - 一 程序運行情況.- 12 - 二 測試計劃及分析.- 15 - 1 檢驗的先后順序.- 15 - 2 程序異常處理.- 15 - 結論結論 .- 16 - 致謝致謝 .- 17 - 參考文獻參考文獻 .- 17 - 第一章第一章 緒論緒論 一一 游戲游戲產業(yè)介紹產業(yè)介紹 游戲產業(yè)作為現(xiàn)代電腦電子技術的產物,正在以其獨特的魅力在全世界的娛樂領域占據(jù) 主流位置,我們在承認廣大娛樂網(wǎng)民的選擇空間狹小的同時,也必須明確的一點就是游戲本 身所具有的強大的吸引力。游戲的吸引力主要在于,它在讓玩家打發(fā)時間的同時,可以讓人 在緊張工作之余帶來最大程度的放松,也可以增進人
21、們之間的交流、溝通,通過游戲還可以 認識更多的朋友,也可以到達跨省、跨市、甚至跨國間人們互相娛樂的目的,從而滿足了人 們休閑的需要。而且游戲產業(yè)促動高科技技術不斷升級,作為經濟增長的一大支撐點,已經 成為經濟騰飛的“第四產業(yè)” 。 現(xiàn)在小游戲、網(wǎng)頁游戲越來越受網(wǎng)民歡迎,除了玩的方法簡單外(不像其他游戲還需要 注冊下載繁瑣過程) ,很多游戲不乏經典。由于手機互聯(lián)網(wǎng)的不斷發(fā)展,傳統(tǒng)網(wǎng)游已經不能 跟上時代的潮流,而網(wǎng)頁游戲無需客戶端的特性,決定了將來會是 web 游戲主宰網(wǎng)游市場。 作為最基本的網(wǎng)頁游戲之一, “連連看”游戲的設計與實現(xiàn)可以積累開發(fā)網(wǎng)頁游戲的經驗, 完善開發(fā)思路,為以后更高層次上的網(wǎng)
22、頁游戲開發(fā),打下堅實的基礎,更好的推動網(wǎng)頁游戲 的發(fā)展。 二二 游戲的發(fā)展概況游戲的發(fā)展概況 游戲“連連看”顧名思義就是找出相關聯(lián)的東西,這個連連看在網(wǎng)上基本是用在小游戲 中,就是找出相同的兩樣東西,在一定的規(guī)則之內可以做為相關聯(lián)處理。 “連連看”的發(fā)展 經歷了從桌面游戲、在線游戲、社交游戲三個過程。 游戲“連連看”是源自臺灣的桌面小游戲,自從流入大陸以來風靡一時,也吸引眾多程 序員開發(fā)出多種版本的“連連看” 。這其中,顧方編寫的“阿達連連看”以其精良的制作廣 受好評,這也成為顧方“阿達系列軟件”的核心產品。并于 2004 年,取得了國家版權局的 計算機軟件著作權登記證書。 隨著 flash
23、應用的流行,網(wǎng)上出現(xiàn)了多種在線 flash 版本“連連看” 。如“水晶連連看” 、 “果蔬連連看”等,流行的“水晶連連看”以華麗界面吸引了一大批的女性玩家。2008 年,隨著社交網(wǎng)絡的普及和開放平臺的興起, “連連看”被引入了社交網(wǎng)絡。 “連連看”與個 人空間相結合,被快速的傳播,成為一款熱門的社交游戲,其中以開發(fā)者其中以開發(fā)者 jonevey 在 manyou 開放平臺上推出的“寵物連連看”最為流行。 第二章第二章 連連看游戲描述連連看游戲描述 近年來,java 作為一種新的編程語言。以其簡單性、可移植性和平臺無關性等優(yōu)點,得 到廣泛的應用,特別是 java 與萬維網(wǎng)的完美結合,使其成為網(wǎng)絡
24、編程和嵌入式編程領域的 首選編程語言。 一一 游戲規(guī)則描述游戲規(guī)則描述 1、概要:玩家可以將 2 個相同圖案的牌連接起來,連接不多于 3 根直線,就可以成功 的將兩個圖片消除。 2、操作:第一次使用鼠標點擊游戲界面中的牌,該牌此時為“被選中”以特殊方式顯 示;再次以鼠標點擊其他牌,若該牌與被選中的牌圖案相同,且把第一個牌到第二個牌連起 來,中間的直線不超過 3 根,則消掉這一對牌,否則第一個牌變?yōu)槲幢贿x中狀態(tài),而第二張 牌變成選中狀態(tài)。 3、勝利條件:將游戲界面上的牌全部消除掉。 4、失敗條件: 到規(guī)定的時間,界面上仍然有未消除的牌。 二二 游戲設計的目的游戲設計的目的 通過本次畢業(yè)設計,讓我
25、們掌握如何制作一個游戲軟件,以及制作游戲軟件的整個流程, 制作游戲軟件的步驟,讓學生熟悉項目開發(fā)的完整過程,為即將到來的就業(yè)工作打下基礎。 另外也通過本次設計將三年來所學的專業(yè)知識和其他方面的知識融入到實際應用中,在實際 運用中學習和掌握 java 程序開發(fā)的全過程,進一步熟悉掌握 java 程序設計語言的基礎內容、 基本技能和方法,同時培養(yǎng)學生進行分析問題、解決問題的能力;培養(yǎng)學生進行設計分析、 設計方法、設計操作與測試、設計過程的觀察、理解和歸納能力的提高。 1、主要是能通過開發(fā)“連連看”這個小游戲,學會 java 程序開發(fā)的環(huán)境搭建與配置, 并提高自己 java 程序設計編程的實際能力。
26、通過這次。 2、進一步熟悉掌握 java 程序設計的基礎內容,如用戶圖形界面設計(gui) 、java 多線 程編程等。 3、大體了解怎樣用 java 來編寫小游戲,增強我們實踐能力和創(chuàng)新精神的綜合培養(yǎng)。 三三 游戲可行性論證游戲可行性論證 “連連看”游戲是一個經典的游戲,它因操作簡單、娛樂性強而廣受歡迎。我們通過所 學的 java,利用 myeclipse 設計一個操作簡單、界面美觀、功能齊全的“連連看游戲” 。通 過本游戲的開發(fā),達到學習 java 技術和熟悉軟件開發(fā)流程的目的。 這個游戲是用圖形界面實現(xiàn)的,通過編譯解釋后,出現(xiàn)一個圖形界面。界面上方有一行 菜單欄,點擊菜單欄上的按鈕,出現(xiàn)
27、下拉菜單,選擇開始,進入游戲界面,游戲界面是由若 干個小方格組成的,每個小方格有一個圖標,點擊其中相同的圖標,若它們符合算法要求就 會消失,且游戲期間有一定的時間限制。游戲還設有炸彈、退出、幫助的功能,方便游戲操 作。 第三章第三章 連連看游戲的分析與設計連連看游戲的分析與設計 一一 游戲的設計游戲的設計 1 1 功能設計功能設計 (1)、用戶可以通過點擊菜單中的“開始游戲”選項,開始新游戲程序。程序會載入圖 片,并通過特定的算法排列圖片,并標記圖片,以便判斷圖片是否相同。記錄圖片坐標,以 方便計算圖片是否可以相連。確定圖片大小,以確定用戶點擊的是那張圖片。 (2)、用戶選擇兩張一樣的圖片,通
28、過鼠標進行選取,如果用戶兩次點擊的圖片不相同, 那么系統(tǒng)認為用戶沒有點(鼠標記數(shù)歸 0) ,以完成用戶以后的選取工作。如果用戶選擇的 是相同的圖片,那么系統(tǒng)會消除這兩張圖片,并使鼠標記數(shù)為 0,并消除這兩張圖片的標記, 使里面的圖片被標記在外面。以便用戶可以進行以后的選擇。 (3)、用戶也可使通過使用“刷新”功能進行圖片重新排版。 (4)、用戶點擊提示系統(tǒng)將通過連線,提示用戶下一步可消除的圖片 (5)、用戶點擊演示,系統(tǒng)自動完成游戲 2 2 游戲模塊游戲模塊設計設計 根據(jù)對“連連看”游戲的分析,該游戲可分為三個模塊:算法模塊、界面顯示模塊、菜 單控制模塊。如下圖 3-1 所示: 連連看游戲 算
29、法模塊菜單(控制)模塊界面顯示模塊 圖 3-1 游戲流程模塊圖 3 3 算法模塊算法模塊 (1).圖片路徑處理設計 (2).圖片的產生設計 4 4 界面顯示模塊界面顯示模塊 (1).游戲界面設計 (2).游戲過關、失敗的設計 5 5 菜單控制模塊菜單控制模塊 (1). 開始游戲 (2). 重新開始 (3). 刷新 (4). 提示 (5)演示 (6)游戲難度選擇 如下圖 3-5 所示 難度選擇 游戲 關于 開始 開 始 演 示 判斷 是否 滿足 要求 否 是 消除圖片 刷新 提示 全部消除 游戲結束 6 6 地圖設計地圖設計 地圖的設計是采用 gui 編程的網(wǎng)格布局,定義一個八行八列的網(wǎng)格布局,
30、使用 16 個 數(shù)字然后隨機產生四個數(shù)字,用二維數(shù)組把它們打亂放到八行八列的網(wǎng)格布局中,注意的 是二維數(shù)組的下標要和網(wǎng)格布局是的行、列數(shù)相同。 7 7 算法設計算法設計 在檢驗兩個方塊能否消掉的時候,我們要讓兩個方塊同時滿足兩個條件才行,就是兩者 配對并且連線成功。如圖 4-3 所示 分 3 種情況:從下面的這三種情況,我們可以知道,需要三個檢測,這三個檢測分別 檢測一條直路經。這樣就會有三條路經。若這三條路經上都是空按鈕,那么就剛好是三種直 線(兩個轉彎點)把兩個按鈕連接起來了。 (1)、相鄰 (2)、若不相鄰的先在第一個按鈕的同行找一個空按鈕。1.找到后看第二個按鈕橫向到 這個空按鈕所在的
31、列是否有按鈕。2.沒有的話再看第一個按鈕到與它同行的那個空按鈕之間 是否有按鈕。3.沒有的話,再從與第一個按鈕同行的那個空按鈕豎向到與第二個按鈕的同行 看是否有按鈕。沒有的話路經就通了可以消了. (3)、若(2)失敗后,再在第一個按鈕的同列找一個空按鈕。1.找到后看第二個按鈕豎向 到這個空按鈕所在的行是否有按鈕 2.沒有的話,再看第一個按鈕到與它同列的那個空按鈕 之間是否有按鈕。3.沒有的話,再從與第一個按鈕同列的那個空按鈕橫向到與第二個按鈕同 列看是否有按鈕。沒有的話路經就通了,可以消了。 若以上三步都失敗,說明這兩個按鈕不可以消去。 具體判斷流程見下圖 是是否否為為同同一一圖圖片片 是是否
32、否在在同同一一位位置置 是是否否在在一一條條橫橫線線 是是否否在在一一條條豎豎線線 返返回回ture 是是否否相相鄰鄰 是是否否直直線線相相連連 返返回回ture 是是否否直直線線相相連連 是是否否相相鄰鄰 返返回回ture 返返回回ture 是是 否否 否否 返返回回false 否否 是是 是是 否否 是是 是是 是是 是是 否否 是是 當當兩兩圖圖不不在在一一條條直直線線上上 , 則則以以兩兩圖圖在在x,y方方向向的的延延 長長線線上上去去找找兩兩個個點點 ,使使p1 到到i,i到到j,,j到到p2都都能能直直線線 相相連連 否否 返返回回false 返返回回ture 是是 否否 否否 否
33、否 (4)、圖片成對加載并打亂 將圖片成對的顯示在場景中,并打亂主要用的是 map 類。在該類中,用了一個數(shù)組以數(shù) 字標記的形式來記錄加載的圖片是哪種圖片,在每次加載圖片的時候是一張圖片連續(xù)加載兩 次,以保證加載圖片成對。然后用數(shù)組的隨機方法將數(shù)組打亂。 (5)、判斷兩圖是否能夠相連 兩圖能相連的所有情況: (1)(2)(3) (4) (5) (6) 8 類的設計類的設計 在設計連連看小游戲是,要編寫 6 個 java 源文件 :control.java , loadandsave.java , model.java , gamepanel.java , imageloader.java ,
34、mainframe.java 1)control.java 監(jiān)聽器類。 主要用于接收用戶操作時發(fā)出的指令以及中轉發(fā)送。 2)loadandsave.java 游戲數(shù)據(jù)部分。 主要用于存儲用戶得分情況,以及載入時加載圖片的算法 3)model.java 驅動類。 用于處理接收到的用戶動作指令,以及初始化時用到的一切算法。如:設置游 戲難度,圖片可消除判斷等。 4)gamepanel.java 繪制類。 用于游戲是繪制選中時的邊框,和連接兩個相同圖片的連線。 public void showpath(final object obj) new thread(new runnable() array
35、list points = (arraylist) obj; arraylist shapes = new arraylist(); int step = 30; public void run() / 添加起點矩形 shapes.add(matrixtorect(points.get(0); / 添加終點矩形 shapes.add(matrixtorect(points.get(points.size() - 1); / 添加直線 for (int i = 1; i points.size(); i+) point p1 = getcenter(matrixtorect(points.get
36、(i - 1); point p2 = getcenter(matrixtorect(points.get(i); if (p1.x = p2.x) int distance = p2.y - p1.y; for (int j = 0; j = math.abs(distance); j += step) shapes.add(new line2d.double(p1, new point(p1.x, p1.y + distance / math.abs(distance) * j); else if (p1.y = p2.y) int distance = p2.x - p1.x; for
37、(int j = 0; j = math.abs(distance); j += step) shapes .add(new line2d.double(p1, new point( p1.x + distance / math.abs(distance) * j, p1.y); shapes.add(new line2d.double(p1, p2); graphics2d g2 = (graphics2d) getgraphics(); float dash = 4f ; g2.setstroke(new basicstroke(2.0f, basicstroke.cap_butt, ba
38、sicstroke.join_miter, 11.0f, dash, 1.0f); for (int index = 0; index shapes.size(); index+) try thread.sleep(10); catch (interruptedexception e) e.printstacktrace(); for (int pre = 0; pre = index; pre+) if (pre 2) g2.setcolor(color.blue); else g2.setcolor(color.red); g2.draw(shapes.get(pre); ).start(
39、); 效果如圖: 5)imageloader.java 圖片加載器。 用于加載庫中的圖片。 6)mainframe.java 主窗體繪制。 所有游戲中可見窗體的繪制。 7) 項目層次結構圖: 9 9 算法設計算法設計 1)圖片消除算法 for (int i = 0; i map.length; i+) for (int j = 0; j map0.length; j+) rectangle rect = matrixtorect(i, j); if (mapij = 0) continue; g.drawimage(imageloader.getimageof(mapij), rect.x,
40、rect.y, null); 2)圖片加載算法 public class imageloader private static bufferedimage cursorimage; private static bufferedimage icon; private static final bufferedimage images=new bufferedimagemodel.card_numbers+1; public static bufferedimage getcursorimage() if(cursorimage=null)/獲得圖片的編號 try urlclassloader
41、urlloader=(urlclassloader) imageloader.class.getclassloader(); url url=urlloader.findresource(images/cursor.gif); cursorimage=imageio.read(url); catch (exception e) e.printstacktrace(); return cursorimage; public static bufferedimage geticonimage() if(icon=null)/加載圖標 try urlclassloader urlloader=(ur
42、lclassloader) imageloader.class.getclassloader(); url url=urlloader.findresource(images/qq.png); icon=imageio.read(url); catch (exception e) e.printstacktrace(); return icon; public static bufferedimage getimageof(int index) if(imagesindex=null)/在已編號處加載圖片 try urlclassloader urlloader=(urlclassloader
43、) imageloader.class.getclassloader(); url url=urlloader.findresource(images/+index+.gif); imagesindex=imageio.read(url); catch (ioexception e) e.printstacktrace(); return imagesindex; 二二 主要問題主要問題 開始制作游戲時,主要解決的問題有以下幾個方面: (1)、如何設置整個游戲的界面。 (2)、如何控制連連看游戲中隨機圖片的生成切每種圖片必須為偶數(shù)個;游戲開始后, 判斷鼠標兩次點擊的圖片能否消去,即圖片是否相同
44、且圖片之間路徑的判斷。 (3)、如何判斷游戲是否結束以及輸贏的問題。 三三 技術要求技術要求 本游戲軟件可以在大多數(shù)計算機上運行,游戲中能正確判斷鼠標兩次點擊的圖片是否 可以消去、能正確判斷游戲是否已經結束。 四四 設計要求設計要求 1 1 開發(fā)環(huán)境開發(fā)環(huán)境 在 windows xp 系統(tǒng)下,java 程序設計語言及相應的集成開發(fā)環(huán)境,利用 myeclipse 實現(xiàn)。 開發(fā)平臺 jdk1.6。 2 2 理論基礎理論基礎 (1)、熟悉java語言基礎 (2)、gui編程 1. gui 是 graphical user interface 的縮寫,圖形化用戶界面 2. 布局管理 flowlayou
45、t(流式布局管理器) 從左到右的順序排列。 borderlayout(邊界布局管理器) 東,南,西,北,中 gridlayout(網(wǎng)格布局 管理器)事件處理機制 事件:用戶對組件的一個操作。 事件源:發(fā)生事件的組 件。 監(jiān)聽器:我們需要處理某個事件,就需要在發(fā)生事件的組件上添加監(jiān)聽器; 事件處理器:監(jiān)聽器中的方法。監(jiān)聽器被添加在組件上之后,組件上發(fā)生了對應 事 件就會執(zhí)行指定方法。動作事件,actionevent,在某一組件上發(fā)生了定義好 的動作,例如按鈕上鼠標點擊 或按空格,菜單上鼠標點擊或按回車等。 3. myeclipse 的操作。 3 3 開發(fā)目標開發(fā)目標 系統(tǒng)能夠提供友好的用戶界面,
46、使操作人員的心情放松; 系統(tǒng)具有良好的運行效率,能夠得到快速發(fā)現(xiàn)自我的目的; 系統(tǒng)應有良好的可擴充性,可以容易的轉入其它系統(tǒng)應用; 平臺的設計具有一定的靈活性。 第四章第四章 游戲運行及測試分析游戲運行及測試分析 一一 程序運行情況程序運行情況 點擊菜單中的開始游戲后的界面,連連看游戲規(guī)則很簡單,就是點中兩個互相匹配并且 可以通過不多于兩個折點的折線連相同的圖片,然后消去。下圖是開始游戲后的界面效果 選擇游戲難度(圖) 點擊開始,開始當前難度游戲,如果不選擇難度,則難度 1 到 9 隨機 點擊刷新則所有圖片隨機改變位置其總數(shù)不變。 提示,可以根據(jù)算法隨機提示一組可以消去的圖片。 點擊演示,電腦
47、將自動完成消除,每一步都有邊框以及連線顯示,直到所有方塊消除完畢 圖片由用戶消除完畢,則如下圖顯示 由于用戶每次只能消除一對圖形,即只會用到一個最短路徑,但由于實現(xiàn)并不知道用戶 會選擇哪一對圖形,所以需要事先計算出所有可能的最短路徑并保存起來。此外,采用這種 方法的話似乎每次用戶消去一對相同圖像之后都需要重新計算出當前所有可能被連接的相同 圖形之間最短路徑,這是因為當某些圖像被消去之后可能會產生很多新路徑,而我們又不能 確定這些空出來的格子到底能夠影響哪些路徑,所以就只好都重新計算一遍。 二二 測試計劃及分析測試計劃及分析 1 1 檢驗的先后順序檢驗的先后順序 在檢驗兩個方塊能否消掉的時候,我
48、們要讓兩個方塊同時滿足兩個條件才行,就是兩者 配對并且連線成功。所以,這里應該先檢驗配對,如果該條件不成立的話,就不要再進行連 線檢查了,這樣可以避免很多不必要的復雜運算。當然,如果你在做這個游戲的時候,配對 規(guī)則不夠如此簡單的話,那么就看哪個算起來麻煩就把它放在后面。 2 2 程序異常處理程序異常處理 本程序沒有涉及到程序的異常處理,只有關于“死鎖”問題,本質上還是判別兩個格子 是否可以消去的問題。最直接的方法就是,對于游戲中尚未消去的格子,兩兩都計算一下, 它們是否可以消去。此外,從上面的廣度優(yōu)先搜索可以看出,我們每次都是擴展出起始格子 a(x1,y1)能夠到達的格子。也就是說,對于每一個格子,我們可以調用一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車輛質押貸款合同模板5篇
- 二零二五版白酒市場調研與分析服務合同2篇
- 二零二五版便利店區(qū)域代理合作合同范本2篇
- 二零二五年度花卉市場花卉供貨與品牌孵化服務合同3篇
- 二零二五年環(huán)境監(jiān)測地形圖測繪與污染防控合同3篇
- 二零二五版電影影視基地建設贊助合同3篇
- 2025版金融機構出納人員現(xiàn)金擔保責任合同范本3篇
- 二零二五年建材城商鋪租賃合同環(huán)保及安全責任承諾書3篇
- 二零二五年度民間借貸合同管轄權變更協(xié)議3篇
- 二零二五年度房地產買賣居間合同模板(含稅費繳納)下載3篇
- 《木蘭詩》第1第2課時示范公開課教學PPT課件【統(tǒng)編人教版七年級語文下冊】
- EGD殺生劑劑化學品安全技術說明(MSDS)zj
- GB/T 12229-2005通用閥門碳素鋼鑄件技術條件
- 超分子化學-第三章 陰離子的絡合主體
- 控制變量法教學課件
- 血壓計保養(yǎng)記錄表
- 食品的售后服務承諾書范本范文(通用3篇)
- 新外研版九年級上冊(初三)英語全冊教學課件PPT
- 初中中考英語總復習《代詞動詞連詞數(shù)詞》思維導圖
- 植物和五行關系解說
- 因式分解法提公因式法公式法
評論
0/150
提交評論