2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  畢業(yè)設計(論文)任務書</p><p>  注:本任務書要求一式兩份,一份系部留存,一份報教務處實踐教學科。</p><p><b>  摘要</b></p><p>  游戲發(fā)展至今已經有30多年歷史,在這個短暫的時期里,隨著硬件水平的提高,游戲開發(fā)新技術層出不窮,經典游戲比比皆是。大部分的人一聽到連連看游戲,通常就會想

2、到這是一個小游戲。</p><p>  連連看游戲,是指在一個區(qū)域內,分布著許多不同的圖片,通過點擊兩張相同的圖片并符合一定的規(guī)則消除它們的一個游戲。我們最常見的是在QQ游戲大廳里的QQ連連看,網(wǎng)絡上也有許多各式各樣的單機版連連看游戲。在游戲的過程中,可以考慮下如何使用自己掌握的程序去實現(xiàn)游戲的效果,并嘗試去開發(fā)屬于自己的連連看,這是一件十分愜意的事情。在本章中,我們將詳細的教大家如何使用Java去開發(fā)一款屬于自

3、己的單機連連看。</p><p>  本游戲采用JAVA語言開發(fā),以MyEclipse為開發(fā)平臺。游戲主界面是基于GUI(圖形用戶界面)的開發(fā),使得游戲界面簡單清晰。并調用了其中的一些函數(shù),完成了事件的觸發(fā)功能。希望通過這次開發(fā)設計出的連連看小游戲,給大家的生活帶來一點樂趣。</p><p>  游戲通過定義動態(tài)的二維數(shù)組,根據(jù)一定的算法實現(xiàn)規(guī)定的路徑判斷。</p><

4、p>  關鍵詞:連連看、小游戲、JAVA、GUI、數(shù)組</p><p><b>  Abstract</b></p><p>  Game development has 30 years of history, in this short period, along with the hardware level, game development new t

5、echnology emerge in an endless stream, classic games meet the eye everywhere. Most of the people hear Lianliankan game, they usually think this is a small game.</p><p>  Lianliankan game, refers to a region,

6、 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 ha

7、s a lot of 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 ver

8、y happy thing. In this </p><p>  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, w

9、hich makes the game interface simple and clear. And call some of these functions, completed the event trigger function. Hope that through this design Lianliankan game, for everyone to bring to life a little fun.</p>

10、;<p>  The game through the definition of the dynamic two-dimensional array, according to certain provisions of the path algorithm to determine.</p><p>  Key words: Lianliankan, game, JAVA, GUI, array

11、</p><p><b>  目錄</b></p><p><b>  摘要IV</b></p><p>  第一章 緒論- 1 -</p><p>  一 游戲產業(yè)介紹- 1 -</p><p>  二 游戲的發(fā)展概況- 1 -</p><p&g

12、t;  第二章 連連看游戲描述- 2 -</p><p>  一 游戲規(guī)則描述- 2 -</p><p>  二 游戲設計的目的- 2 -</p><p>  三 游戲可行性論證- 2 -</p><p>  第三章 連連看游戲的分析與設計- 3 -</p><p>  一 游戲的設計- 3 -</p

13、><p>  1 功能設計- 3 -</p><p>  2 游戲模塊設計- 3 -</p><p>  3 算法模塊- 4 -</p><p>  4 界面顯示模塊- 4 -</p><p>  5 菜單控制模塊- 4 -</p><p>  6 地圖設計- 5 -</p>

14、<p>  7 算法設計- 5 -</p><p>  8 類的設計- 7 -</p><p>  1)Control.java 監(jiān)聽器類。- 7 -</p><p><b>  - 7 -</b></p><p>  2)LoadAndSave.java 游戲數(shù)據(jù)部分。- 7 -</p

15、><p>  3)Model.java 驅動類。- 7 -</p><p>  4)GamePanel.java 繪制類。- 7 -</p><p>  5)ImageLoader.java 圖片加載器。- 9 -</p><p>  6)MainFrame.java 主窗體繪制。- 9 -</p><p&

16、gt;  9 算法設計- 9 -</p><p>  二 主要問題- 11 -</p><p>  三 技術要求- 11 -</p><p>  四 設計要求- 11 -</p><p>  1 開發(fā)環(huán)境- 11 -</p><p>  2 理論基礎- 11 -</p><p>  

17、3 開發(fā)目標- 11 -</p><p>  第四章 游戲運行及測試分析- 12 -</p><p>  一 程序運行情況- 12 -</p><p>  二 測試計劃及分析- 15 -</p><p>  1 檢驗的先后順序- 15 -</p><p>  2 程序異常處理- 15 -</p>

18、<p><b>  結論- 16 -</b></p><p><b>  致謝- 17 -</b></p><p>  參考文獻- 17 -</p><p><b>  第一章 緒論</b></p><p><b>  一 游戲產業(yè)介紹</b

19、></p><p>  游戲產業(yè)作為現(xiàn)代電腦電子技術的產物,正在以其獨特的魅力在全世界的娛樂領域占據(jù)主流位置,我們在承認廣大娛樂網(wǎng)民的選擇空間狹小的同時,也必須明確的一點就是游戲本身所具有的強大的吸引力。游戲的吸引力主要在于,它在讓玩家打發(fā)時間的同時,可以讓人在緊張工作之余帶來最大程度的放松,也可以增進人們之間的交流、溝通,通過游戲還可以認識更多的朋友,也可以到達跨省、跨市、甚至跨國間人們互相娛樂的目的,從

20、而滿足了人們休閑的需要。而且游戲產業(yè)促動高科技技術不斷升級,作為經濟增長的一大支撐點,已經成為經濟騰飛的“第四產業(yè)”。</p><p>  現(xiàn)在小游戲、網(wǎng)頁游戲越來越受網(wǎng)民歡迎,除了玩的方法簡單外(不像其他游戲還需要注冊下載繁瑣過程),很多游戲不乏經典。由于手機互聯(lián)網(wǎng)的不斷發(fā)展,傳統(tǒng)網(wǎng)游已經不能跟上時代的潮流,而網(wǎng)頁游戲無需客戶端的特性,決定了將來會是Web游戲主宰網(wǎng)游市場。作為最基本的網(wǎng)頁游戲之一,“連連看”游

21、戲的設計與實現(xiàn)可以積累開發(fā)網(wǎng)頁游戲的經驗,完善開發(fā)思路,為以后更高層次上的網(wǎng)頁游戲開發(fā),打下堅實的基礎,更好的推動網(wǎng)頁游戲的發(fā)展。</p><p><b>  二 游戲的發(fā)展概況</b></p><p>  游戲“連連看”顧名思義就是找出相關聯(lián)的東西,這個連連看在網(wǎng)上基本是用在小游戲中,就是找出相同的兩樣東西,在一定的規(guī)則之內可以做為相關聯(lián)處理。“連連看”的發(fā)展經歷了

22、從桌面游戲、在線游戲、社交游戲三個過程。</p><p>  游戲“連連看”是源自臺灣的桌面小游戲,自從流入大陸以來風靡一時,也吸引眾多程序員開發(fā)出多種版本的“連連看”。這其中,顧方編寫的“阿達連連看”以其精良的制作廣受好評,這也成為顧方“阿達系列軟件”的核心產品。并于2004年,取得了國家版權局的計算機軟件著作權登記證書。</p><p>  隨著Flash應用的流行,網(wǎng)上出現(xiàn)了多種在線

23、Flash版本“連連看”。如“水晶連連看”、“果蔬連連看”等,流行的“水晶連連看”以華麗界面吸引了一大批的女性玩家?! ?008年,隨著社交網(wǎng)絡的普及和開放平臺的興起,“連連看”被引入了社交網(wǎng)絡。“連連看”與個人空間相結合,被快速的傳播,成為一款熱門的社交游戲,其中以開發(fā)者其中以開發(fā)者Jonevey在Manyou開放平臺上推出的“寵物連連看”最為流行。</p><p>  第二章 連連看游戲描述</p>

24、;<p>  近年來,Java作為一種新的編程語言。以其簡單性、可移植性和平臺無關性等優(yōu)點,得到廣泛的應用,特別是Java與萬維網(wǎng)的完美結合,使其成為網(wǎng)絡編程和嵌入式編程領域的首選編程語言。</p><p><b>  一 游戲規(guī)則描述</b></p><p>  1、概要:玩家可以將2個相同圖案的牌連接起來,連接不多于3根直線,就可以成功的將兩個圖片消

25、除。</p><p>  2、操作:第一次使用鼠標點擊游戲界面中的牌,該牌此時為“被選中”以特殊方式顯示;再次以鼠標點擊其他牌,若該牌與被選中的牌圖案相同,且把第一個牌到第二個牌連起來,中間的直線不超過3根,則消掉這一對牌,否則第一個牌變?yōu)槲幢贿x中狀態(tài),而第二張牌變成選中狀態(tài)。</p><p>  3、勝利條件:將游戲界面上的牌全部消除掉。</p><p>  4、

26、失敗條件: 到規(guī)定的時間,界面上仍然有未消除的牌。</p><p><b>  二 游戲設計的目的</b></p><p>  通過本次畢業(yè)設計,讓我們掌握如何制作一個游戲軟件,以及制作游戲軟件的整個流程,制作游戲軟件的步驟,讓學生熟悉項目開發(fā)的完整過程,為即將到來的就業(yè)工作打下基礎。另外也通過本次設計將三年來所學的專業(yè)知識和其他方面的知識融入到實際應用中,在實際運用

27、中學習和掌握Java程序開發(fā)的全過程,進一步熟悉掌握Java程序設計語言的基礎內容、基本技能和方法,同時培養(yǎng)學生進行分析問題、解決問題的能力;培養(yǎng)學生進行設計分析、設計方法、設計操作與測試、設計過程的觀察、理解和歸納能力的提高。</p><p>  1、主要是能通過開發(fā)“連連看”這個小游戲,學會Java程序開發(fā)的環(huán)境搭建與配置,并提高自己Java程序設計編程的實際能力。通過這次。</p><p

28、>  2、進一步熟悉掌握Java程序設計的基礎內容,如用戶圖形界面設計(GUI)、Java多線程編程等。</p><p>  3、大體了解怎樣用Java來編寫小游戲,增強我們實踐能力和創(chuàng)新精神的綜合培養(yǎng)。</p><p><b>  三 游戲可行性論證</b></p><p>  “連連看”游戲是一個經典的游戲,它因操作簡單、娛樂性強而廣

29、受歡迎。我們通過所學的JAVA,利用MyEclipse設計一個操作簡單、界面美觀、功能齊全的“連連看游戲”。通過本游戲的開發(fā),達到學習Java技術和熟悉軟件開發(fā)流程的目的。</p><p>  這個游戲是用圖形界面實現(xiàn)的,通過編譯解釋后,出現(xiàn)一個圖形界面。界面上方有一行菜單欄,點擊菜單欄上的按鈕,出現(xiàn)下拉菜單,選擇開始,進入游戲界面,游戲界面是由若干個小方格組成的,每個小方格有一個圖標,點擊其中相同的圖標,若它們

30、符合算法要求就會消失,且游戲期間有一定的時間限制。游戲還設有炸彈、退出、幫助的功能,方便游戲操作。</p><p>  第三章 連連看游戲的分析與設計</p><p><b>  一 游戲的設計</b></p><p><b>  1 功能設計</b></p><p>  (1)、用戶可以通過點擊菜

31、單中的“開始游戲”選項,開始新游戲程序。程序會載入圖片,并通過特定的算法排列圖片,并標記圖片,以便判斷圖片是否相同。記錄圖片坐標,以方便計算圖片是否可以相連。確定圖片大小,以確定用戶點擊的是那張圖片。</p><p>  (2)、用戶選擇兩張一樣的圖片,通過鼠標進行選取,如果用戶兩次點擊的圖片不相同,那么系統(tǒng)認為用戶沒有點(鼠標記數(shù)歸 0),以完成用戶以后的選取工作。如果用戶選擇的是相同的圖片,那么系統(tǒng)會消除這兩

32、張圖片,并使鼠標記數(shù)為 0,并消除這兩張圖片的標記,使里面的圖片被標記在外面。以便用戶可以進行以后的選擇。</p><p>  (3)、用戶也可使通過使用“刷新”功能進行圖片重新排版。</p><p>  (4)、用戶點擊提示系統(tǒng)將通過連線,提示用戶下一步可消除的圖片</p><p>  (5)、用戶點擊演示,系統(tǒng)自動完成游戲</p><p>

33、;<b>  2 游戲模塊設計</b></p><p>  根據(jù)對“連連看”游戲的分析,該游戲可分為三個模塊:算法模塊、界面顯示模塊、菜單控制模塊。如下圖3-1所示:</p><p>  圖 3-1游戲流程模塊圖</p><p><b>  3 算法模塊</b></p><p>  (1).圖片路徑

34、處理設計</p><p>  (2).圖片的產生設計</p><p><b>  4 界面顯示模塊</b></p><p>  (1).游戲界面設計</p><p>  (2).游戲過關、失敗的設計</p><p><b>  5 菜單控制模塊</b></p>

35、<p><b>  (1). 開始游戲</b></p><p><b>  (2). 重新開始</b></p><p><b>  (3). 刷新</b></p><p><b>  (4). 提示</b></p><p><b>  

36、(5).演示</b></p><p>  (6).游戲難度選擇</p><p><b>  如下圖3-5所示</b></p><p><b>  6 地圖設計</b></p><p>  地圖的設計是采用GUI編程的網(wǎng)格布局,定義一個八行八列的網(wǎng)格布局,使用16個數(shù)字然后隨機產生四個數(shù)字

37、,用二維數(shù)組把它們打亂放到八行八列的網(wǎng)格布局中,注意的是二維數(shù)組的下標要和網(wǎng)格布局是的行、列數(shù)相同。</p><p><b>  7 算法設計</b></p><p>  在檢驗兩個方塊能否消掉的時候,我們要讓兩個方塊同時滿足兩個條件才行,就是兩者配對并且連線成功。如圖4-3所示</p><p>  分 3 種情況:從下面的這三種情況,我們可

38、以知道,需要三個檢測,這三個檢測分別檢測一條直路經。這樣就會有三條路經。若這三條路經上都是空按鈕,那么就剛好是三種直線(兩個轉彎點)把兩個按鈕連接起來了。 </p><p><b>  (1)、相鄰 </b></p><p>  (2)、若不相鄰的先在第一個按鈕的同行找一個空按鈕。1.找到后看第二個按鈕橫向到這個空按鈕所在的列是否有按鈕。2.沒有的話再看第一個按鈕到與

39、它同行的那個空按鈕之間是否有按鈕。3.沒有的話,再從與第一個按鈕同行的那個空按鈕豎向到與第二個按鈕的同行看是否有按鈕。沒有的話路經就通了可以消了. </p><p>  (3)、若(2)失敗后,再在第一個按鈕的同列找一個空按鈕。1.找到后看第二個按鈕豎向到這個空按鈕所在的行是否有按鈕 2.沒有的話,再看第一個按鈕到與它同列的那個空按鈕之間是否有按鈕。3.沒有的話,再從與第一個按鈕同列的那個空按鈕橫向到與第二個按鈕

40、同列看是否有按鈕。沒有的話路經就通了,可以消了。</p><p>  若以上三步都失敗,說明這兩個按鈕不可以消去。</p><p><b>  具體判斷流程見下圖</b></p><p>  (4)、圖片成對加載并打亂</p><p>  將圖片成對的顯示在場景中,并打亂主要用的是Map類。在該類中,用了一個數(shù)組以數(shù)字

41、標記的形式來記錄加載的圖片是哪種圖片,在每次加載圖片的時候是一張圖片連續(xù)加載兩次,以保證加載圖片成對。然后用數(shù)組的隨機方法將數(shù)組打亂。 </p><p>  (5)、判斷兩圖是否能夠相連</p><p>  兩圖能相連的所有情況:</p><p><b>  8 類的設計</b></p><p>  在設計連連看

42、小游戲是,要編寫6個Java源文件 :Control.java , LoadAndSave.java , Model.java , GamePanel.java , ImageLoader.java , MainFrame.java</p><p>  Control.java 監(jiān)聽器類。</p><p>  主要用于接收用戶操作時發(fā)出的指令以及中轉發(fā)送。</p><

43、p>  LoadAndSave.java 游戲數(shù)據(jù)部分。</p><p>  主要用于存儲用戶得分情況,以及載入時加載圖片的算法</p><p>  Model.java 驅動類。</p><p>  用于處理接收到的用戶動作指令,以及初始化時用到的一切算法。如:設置游戲難度,圖片可消除判斷等。</p><p>  GamePanel

44、.java 繪制類。</p><p>  用于游戲是繪制選中時的邊框,和連接兩個相同圖片的連線。</p><p>  public void showPath(final Object obj) {</p><p>  new Thread(new Runnable() {</p><p>  ArrayList<Point> p

45、oints = (ArrayList<Point>) obj;</p><p>  ArrayList<Shape> shapes = new ArrayList<Shape>();</p><p>  int step = 30;</p><p>  public void run() {</p><p>

46、;<b>  // 添加起點矩形</b></p><p>  shapes.add(matrixToRect(points.get(0)));</p><p><b>  // 添加終點矩形</b></p><p>  shapes.add(matrixToRect(points.get(points.size() - 1

47、)));</p><p><b>  // 添加直線</b></p><p>  for (int i = 1; i < points.size(); i++) {</p><p>  Point p1 = getCenter(matrixToRect(points.get(i - 1)));</p><p>  

48、Point p2 = getCenter(matrixToRect(points.get(i)));</p><p>  if (p1.x == p2.x) {</p><p>  int distance = p2.y - p1.y;</p><p>  for (int j = 0; j <= Math.abs(distance); j += step)&

49、lt;/p><p>  shapes.add(new Line2D.Double(p1, new Point(p1.x,</p><p>  p1.y + distance / Math.abs(distance) * j)));</p><p>  } else if (p1.y == p2.y) {</p><p>  int distanc

50、e = p2.x - p1.x;</p><p>  for (int j = 0; j <= Math.abs(distance); j += step)</p><p><b>  shapes</b></p><p>  .add(new Line2D.Double(p1, new Point(</p><p&g

51、t;  p1.x + distance</p><p>  / Math.abs(distance) * j,</p><p><b>  p1.y)));</b></p><p><b>  }</b></p><p>  shapes.add(new Line2D.Double(p1, p2))

52、;</p><p><b>  }</b></p><p>  Graphics2D g2 = (Graphics2D) getGraphics();</p><p>  float dash[] = { 4F };</p><p>  g2.setStroke(new BasicStroke(2.0F, BasicSt

53、roke.CAP_BUTT,</p><p>  BasicStroke.JOIN_MITER, 11.0F, dash, 1.0F));</p><p>  for (int index = 0; index < shapes.size(); index++) {</p><p><b>  try {</b></p>&

54、lt;p>  Thread.sleep(10);</p><p>  } catch (InterruptedException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  for (int pre = 0; pre <=

55、 index; pre++) {</p><p>  if (pre < 2)</p><p>  g2.setColor(Color.BLUE);</p><p><b>  else</b></p><p>  g2.setColor(Color.RED);</p><p>  g2.d

56、raw(shapes.get(pre));</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  }).start();</p><p><b>  }<

57、;/b></p><p><b>  }</b></p><p><b>  效果如圖:</b></p><p>  ImageLoader.java 圖片加載器。</p><p>  用于加載庫中的圖片。</p><p>  MainFrame.java 主窗體繪制

58、。</p><p>  所有游戲中可見窗體的繪制。</p><p><b>  項目層次結構圖:</b></p><p><b>  9 算法設計</b></p><p><b>  圖片消除算法</b></p><p>  for (int i = 0

59、; i < map.length; i++)</p><p>  for (int j = 0; j < map[0].length; j++) {</p><p>  Rectangle rect = matrixToRect(i, j);</p><p>  if (map[i][j] == 0)</p><p><b&

60、gt;  continue;</b></p><p>  g.drawImage(ImageLoader.getImageOf(map[i][j]), </p><p>  rect.x, rect.y, null);}</p><p><b>  圖片加載算法</b></p><p>  public

61、 class ImageLoader {</p><p>  private static BufferedImage cursorImage;</p><p>  private static BufferedImage icon;</p><p>  private static final BufferedImage[] </p><p&g

62、t;  images=new BufferedImage[Model.CARD_NUMBERS+1];</p><p>  public static BufferedImage getCursorImage(){</p><p>  if(cursorImage==null)//獲得圖片的編號</p><p><b>  try {</b>

63、;</p><p>  URLClassLoader </p><p>  urlLoader=(URLClassLoader) ImageLoader.class.getClassLoader();</p><p>  URL url=urlLoader.findResource("images/cursor.gif");</p>

64、<p>  cursorImage=ImageIO.read(url);</p><p>  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return cursorImage;<

65、/p><p><b>  }</b></p><p>  public static BufferedImage getIconImage(){</p><p>  if(icon==null)//加載圖標</p><p><b>  try {</b></p><p> 

66、 URLClassLoader </p><p>  urlLoader=(URLClassLoader) ImageLoader.class.getClassLoader();</p><p>  URL url=urlLoader.findResource("images/QQ.png");</p><p>  icon=ImageIO.re

67、ad(url);</p><p>  } catch (Exception e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return icon;</p><p><b>  }</b>&l

68、t;/p><p>  public static BufferedImage getImageOf(int index){</p><p>  if(images[index]==null)//在已編號處加載圖片</p><p><b>  try {</b></p><p>  URLClassLoader </

69、p><p>  urlLoader=(URLClassLoader) ImageLoader.class.getClassLoader();</p><p>  URL url=urlLoader.findResource("images/"+index+".gif");</p><p>  images[index]=Image

70、IO.read(url);</p><p>  } catch (IOException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return images[index];</p><p><b>

71、;  }</b></p><p><b>  }</b></p><p><b>  二 主要問題</b></p><p>  開始制作游戲時,主要解決的問題有以下幾個方面:</p><p>  (1)、如何設置整個游戲的界面。</p><p>  (2)、如何控

72、制連連看游戲中隨機圖片的生成切每種圖片必須為偶數(shù)個;游戲開始后,判斷鼠標兩次點擊的圖片能否消去,即圖片是否相同且圖片之間路徑的判斷。</p><p>  (3)、如何判斷游戲是否結束以及輸贏的問題。</p><p><b>  三 技術要求</b></p><p>  本游戲軟件可以在大多數(shù)計算機上運行,游戲中能正確判斷鼠標兩次點擊的圖片是否可

73、以消去、能正確判斷游戲是否已經結束。</p><p><b>  四 設計要求</b></p><p><b>  1 開發(fā)環(huán)境</b></p><p>  在windows XP系統(tǒng)下,JAVA 程序設計語言及相應的集成開發(fā)環(huán)境,利用MyEclipse實現(xiàn)。</p><p>  開發(fā)平臺jdk1.

74、6。</p><p><b>  2 理論基礎</b></p><p>  (1)、熟悉JAVA語言基礎</p><p><b>  (2)、GUI編程</b></p><p>  GUI 是 Graphical User Interface 的縮寫,圖形化用戶界面 </p><

75、p>  布局管理 FlowLayout(流式布局管理器) 從左到右的順序排列。 BorderLayout(邊界布局管理器) 東,南,西,北,中 GridLayout(網(wǎng)格布局管理器)事件處理機制 事件:用戶對組件的一個操作。 事件源:發(fā)生事件的組件。 監(jiān)聽器:我們需要處理某個事件,就需要在發(fā)生事件的組件上添加監(jiān)聽器;事件處理器:監(jiān)聽器中的方法。監(jiān)聽器被添加在組件上之后,組件上發(fā)生了對應事 件就會執(zhí)行指定方法。動作事件,Action

76、Event,在某一組件上發(fā)生了定義好的動作,例如按鈕上鼠標點擊 或按空格,菜單上鼠標點擊或按回車等。</p><p>  MyEclipse的操作。</p><p><b>  3 開發(fā)目標</b></p><p>  系統(tǒng)能夠提供友好的用戶界面,使操作人員的心情放松;</p><p>  系統(tǒng)具有良好的運行效率,能夠得

77、到快速發(fā)現(xiàn)自我的目的;</p><p>  系統(tǒng)應有良好的可擴充性,可以容易的轉入其它系統(tǒng)應用;</p><p>  平臺的設計具有一定的靈活性。</p><p>  第四章 游戲運行及測試分析</p><p><b>  一 程序運行情況</b></p><p>  點擊菜單中的開始游戲后的界面

78、,連連看游戲規(guī)則很簡單,就是點中兩個互相匹配并且可以通過不多于兩個折點的折線連相同的圖片,然后消去。下圖是開始游戲后的界面效果</p><p><b>  選擇游戲難度(圖)</b></p><p>  點擊開始,開始當前難度游戲,如果不選擇難度,則難度1到9隨機</p><p>  點擊刷新則所有圖片隨機改變位置其總數(shù)不變。</p>

79、;<p>  提示,可以根據(jù)算法隨機提示一組可以消去的圖片。</p><p>  點擊演示,電腦將自動完成消除,每一步都有邊框以及連線顯示,直到所有方塊消除完畢</p><p>  圖片由用戶消除完畢,則如下圖顯示</p><p>  由于用戶每次只能消除一對圖形,即只會用到一個最短路徑,但由于實現(xiàn)并不知道用戶會選擇哪一對圖形,所以需要事先計算出所有可

80、能的最短路徑并保存起來。此外,采用這種方法的話似乎每次用戶消去一對相同圖像之后都需要重新計算出當前所有可能被連接的相同圖形之間最短路徑,這是因為當某些圖像被消去之后可能會產生很多新路徑,而我們又不能確定這些空出來的格子到底能夠影響哪些路徑,所以就只好都重新計算一遍。</p><p><b>  二 測試計劃及分析</b></p><p><b>  1 檢驗

81、的先后順序</b></p><p>  在檢驗兩個方塊能否消掉的時候,我們要讓兩個方塊同時滿足兩個條件才行,就是兩者配對并且連線成功。所以,這里應該先檢驗配對,如果該條件不成立的話,就不要再進行連線檢查了,這樣可以避免很多不必要的復雜運算。當然,如果你在做這個游戲的時候,配對規(guī)則不夠如此簡單的話,那么就看哪個算起來麻煩就把它放在后面。</p><p><b>  2

82、程序異常處理</b></p><p>  本程序沒有涉及到程序的異常處理,只有關于“死鎖”問題,本質上還是判別兩個格子是否可以消去的問題。最直接的方法就是,對于游戲中尚未消去的格子,兩兩都計算一下,它們是否可以消去。此外,從上面的廣度優(yōu)先搜索可以看出,我們每次都是擴展出起始格子A(x1,y1)能夠到達的格子。也就是說,對于每一個格子,我們可以調用一次上面的擴展過程,得到所有可以到達的格子,如果這些格子

83、中有任意一個跟起始格子的圖形一致,則它們可以消去,目前游戲我還沒有發(fā)現(xiàn)“死鎖”狀態(tài)。</p><p><b>  結論</b></p><p>  “連連看”游戲的基本功能都已經實現(xiàn)了,其中很多變量之間數(shù)據(jù)的傳遞都很復雜,要搞不明白就沒辦法再往下做了,路徑判斷問題中用到數(shù)據(jù)結構的知識,也很抽象,代碼量也很大,另外這個游戲不會用到數(shù)據(jù)庫,所用功能也很少,只需要判斷用戶每

84、次鼠標點擊的坐標以及當前坐標位置代表的圖片內容就好了</p><p>  通過這次“連連看”游戲的設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正的提高自己的水平,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,并且還發(fā)現(xiàn)了自己的許多不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固

85、。同時在這次的設計中也小小的體驗了一下做項目的感受,</p><p>  我完成了這次JAVA課程設計,不過這只是我學習路上的驛站。我相信我在未來的學習中會記住從本次課程設計中所學到的東西,并將它用到未來的學習中去。</p><p><b>  致謝</b></p><p>  彈指一揮間,大學三年已經接近了尾聲。三年的艱苦跋涉,兩個月的精心準

86、備,畢業(yè)設計終于到了劃句號的時候,心頭照例該如釋重負,但創(chuàng)作過程中常常出現(xiàn)的輾轉反側和力不從心之感卻揮之不去。畢業(yè)設計創(chuàng)作的過程并不輕松:各種壓力的時時襲擾,知識積累的尚欠火候,致使我一次次埋頭于圖書館中,一次次在深夜奮力敲打鍵盤。第一次花費如此長的時間和如此多的精力,完成一套設計作品,其中的艱辛與困難難以訴說,但曲終幕落后留下的滋味,是值得我一生慢慢品嘗的。在這里需要的感謝的人很多,是他們讓我這大學三年從知識到人格上有了一個全新的改變

87、。</p><p>  感謝我的指導老師,夠順利完成畢業(yè)設計,離不開他的悉心指導,他對我的設計從確定題目、修改直到完成,給予了我許多的指點和幫助。感謝他在繁忙的工作之余,擠出時間對設計提出精辟的修改意見。在此,向老師致以最誠摯的謝意。</p><p>  最后我也要感謝我的母校三年來對我的培養(yǎng)。以及所有教給我知識的老師們祝你們工作順利、身體健康!祝母校的明天越來越美好!</p>

88、<p><b>  參考文獻</b></p><p>  [1] 張明新,周耿烈.Java語言程序設計. 重慶:重慶大學出版社,2004.</p><p>  [2] 周曉聰,李文軍,李師賢.面向對象程序設計與Java語言. 北京:機械工業(yè)出版社,2004.</p><p>  [3] Bruce Eckel.Java編程思想.北

89、京:機械工業(yè)出版社,2007.</p><p>  [4] James Cohoon,Jack Davidson.Java程序設計. 北京:清華大學出版社,2005.</p><p>  [5] Steven Holzner.Java技術內幕. 北京:機械工業(yè)出版社,2002.</p><p>  [6] 張洪斌.Java程序設計百事通. 北京:清華大學出版社,20

90、01.</p><p>  [7] 夏先波.Java JDK實例寶典. 北京:電子工業(yè)出版社,2007.</p><p>  [8] 吳其慶.Java程序設計經典教程. 北京:冶金工業(yè)出版社,2005.</p><p>  [9] 耿祥義,張躍平.Java 2 實用教程. 北京:清華大學出版社,2007.</p><p>  [10] 蔡勇,

溫馨提示

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

評論

0/150

提交評論