freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于java的掃雷游戲的設計與實現論文-資料下載頁

2024-11-12 15:30本頁面

【導讀】1.綜述目前已存在的掃雷游戲優(yōu)缺點;2.深入了解掃雷游戲的數據結構;3.熟練掌握java的編程規(guī)則,訓練用java編寫程序的能力;4.設計并實現基于java的掃雷游戲;5.深入分析現在用戶的游戲需求,了解掃雷游戲的可改進方面;6.訓練檢索文獻資料和利用文獻資料的能力;7.訓練撰寫技術文檔與學位論文的能力。3.熟悉基于coreJava的開發(fā)環(huán)境;1.內容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設計論文;經典游戲主要的游戲功能,刪除了掃雷游戲的英雄榜功能,卻仍舊是一個挺不錯的版本。界面大方,樂觀,美好,此次程序設計主要注重于程序的完善性和規(guī)范性。是一個練習Java方面編程很好的實用例子,且程序框架簡明易讀、內容鮮明。此掃雷游戲是當您工作疲勞時放松心情,舒緩情感的不貳選擇,同時適合平。此次掃雷游戲不但能夠使人們充分體驗娛樂的。第二便是處理鼠標事件,即在游戲過程當中對鼠標事件應做出如何反應。

  

【正文】 法 將 使 用 戶 輸 掉 本 局 , 若 該 方 塊 下 無 雷 ,開 始開 始定 義 并 初 始 化M i n e G r i d 類獲 取 相 應 的 設置 , 并 為 方 塊 產生 隨 機 數 字 賦 值計 數 器 數 小 于 等 級 雷 數存 放 賦 值 雷區(qū) , 計 數 器 加 1鼠 標 是 否 點 擊處 理 周 圍 信 息 ,并 顯 示 相 應 效 果YNYN職場大變樣社區(qū)( ):下載畢業(yè)設計成品 16 actionPerformed(ActionEvent)方法將顯示對象中的標簽,該標簽上是一個數字,該數字代表當前方塊的周圍的 8 個方塊中共有多少顆雷。 (3)mousePressed(MouseEvent)方法是 mousL 類實現的 MouseListener 接口中的方法,當用戶按下鼠標有件事 mousePressed(MouseEvent)方法負 責讓方塊上顯示一個探雷標記。 (4)tishi()方法用來判斷用戶是否掃雷成功,如果成功該方法負責讓 TishiDialog 對話框可見。 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 17 6. 掃雷游戲的功能實現 掃雷游戲主要功能的實現 菜單欄的實現 在主函數中實現菜單功能,主要有游戲的開始、重新開始、退出、插旗、打開如圖61。 JButton start。 JButton restart。 JButton stop。 JButton isflag。 JButton noflag。 圖 61 菜單中游戲選項 游戲難度的選擇及自定義設置如圖 62。 cbb=new JComboBox(new String[]{初級 ,中級 ,高級 })。 圖 62 菜單欄游戲難度選項 /*游戲的設置容易、中等、困難 */ public void itemStateChanged(ItemEvent e) { Object obj=()。 int t=0。 if((初級 )){ Cols=5。 Rows=5。 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 18 score=0。 Tnt_count=5。 }else if((中級 )){ Cols=8。 Rows=8。 score=0。 Tnt_count=20。 }else if((高級 )){ Cols=12。 Rows=12。 score=0。 Tnt_count=40。 } (已經找到雷的數量: +score+ 本關雷的數量:+Tnt_count+\n)。 (當前關卡為: +obj)。 } 菜單欄的功能 ① 新游戲:根據當前游戲難度直接開始一局新游戲。 ② 初級、中級、高級游戲設定:根據選項設定游戲難度后開始新游戲。 ③ 重新開始和插旗。 鼠標事件的實現 在游戲過程中,我們利用鼠標所發(fā)出的信息了解游戲者的意圖,進而做出相對應的動作。 在 MouseEvent 事件中,可以捕捉鼠標所按下或放開的按鍵、鼠標光標在該組件上的坐標及是否同時按下輔助鍵等。函數原型如下: import 。 class mousL extends MouseAdapter{ //鼠標事件監(jiān)聽 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 19 public void mousePressed(MouseEvent e) { // TODO Autogenerated method stub if(()==){ // 在上面面板上點擊鼠標右鍵,將當前狀態(tài)改為插旗或排雷狀態(tài) if(flag==false){ flag=true。 }else{ flag=false。 } } (插旗: +flag)。 } } 點擊插旗后,假如游戲者發(fā)現標示地雷的小旗方塊是錯誤的,再重新點擊一下左鍵,就會取消小旗,這時按下左鍵,該方塊就會重新選擇,若再按下左鍵,則該方塊因為已成為 ―已標示 ‖方塊,所以就無法翻開。切換成打開模式,就可以接著翻開方塊了。 在窗口的軟件中,鼠標的應用是不可或缺的,但鼠標固然好用,如果程序設計不當,也可能造成使用者 的不便。通常鼠標在軟件的應用上經常使用右鍵作為確定使用者的操作意圖,而只把 MouseEvent 事件當做標示的用途(用意就如同前面所提),只是為給使用者一個反悔的機會。 游戲的操作方面主要以鼠標為主,當鼠標指針對準未翻開的方塊按下左鍵時即表示翻開方塊; 完成掃雷游戲邏輯的設計 ① 設計實現:在程序中,使用一個 setTnt 類初始化界面上所有格子。 ② 掃雷表現形式:使用隨機函數 random 將雷隨機放入格子 for(int i=0。i。i++){ //將雷隨機放入格子 int r=(int)(()*cells_count)。 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 20 while(cells[r].getFlag()){ r=(int)(()*cells_count)。 } cells[r].setFlag(true)。 tnts[i]=cells[r]。 } ③ 游戲基本屬性:地雷數組行數、列數、地雷數量、游戲難度。 ④ 游戲狀態(tài):游戲初始界面,游戲進行中,游戲失敗,游戲成功。 ⑤ setTnt 類主要功能:初始化游戲界面、生成隨機的地雷數,初始化全部格子,將雷隨機放入格子,判斷每個格子周圍雷的個數,并將其作為非雷格子的一個屬性。 ⑥ 設置游戲等級:初級、中級、高級。其三者都由默認設置游戲屬性。通過游戲等級的設置,間接設置游戲的基本屬性。 掃雷游戲狀態(tài)分類 當玩家掃雷時,即用鼠標點擊一個格子時,有以下幾種狀態(tài): ① 踩到雷:游戲失敗,結束游戲。 ② 點到的是數字:顯示數字,游戲繼續(xù)。 ③ 若玩家點到的格子周圍一顆雷也沒有時:就采用遞歸算法,繼續(xù)向周圍擴展。 ④ 當玩家點開所有的非雷的格子:提示游戲通過,并且開始下一關游戲。 ⑤ 標示雷:左鍵點擊出現小旗時,代表下面是地雷。 初始化界面功能實現 掃雷面板 創(chuàng)建掃雷游戲應用程序用戶界面。游戲需要提供一個菜單欄。提供游戲的新游戲、設置等選項。在游戲區(qū)按功能將它分成雷區(qū)和提示區(qū)。掃雷游戲的初始化界面。如圖63。 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 21 圖 63 掃雷游戲的初始界面 雷區(qū)的隨機布置 這里重點介紹的就是雷的隨機布置。當游戲界面初始化完成后,這時在地雷 區(qū)中并未產生地雷,只有當玩家在地雷區(qū)中第一次點下左鍵后,才會在地雷區(qū)中隨機的布置當前游戲難度下應該產生的地雷總數,主要用意在于不讓玩家第一次就踩到地雷,這樣在某種程度上可以提高玩家游戲的氣氛。實現其功能部分代碼: for(int i=0。i。i++){ //將雷隨機放入格子 int r=(int)(()*cells_count)。 while(cells[r].getFlag()){ r=(int)(()*cells_count)。 } cells[r].setFlag(true)。 tnts[i]=cells[r]。 } 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 22 清除未靠近地雷的方塊 清除未靠近地雷的方塊也是本論文介紹的重點對象。這里首先引入一個 ―遞歸 ‖的概念, ―遞歸 ‖(Recursion)簡單的說,就是一個程序能被自己所定義的語句調用。遞歸在程序設計上是一種重要的數據結構形態(tài),通過遞歸程序的編寫,在程序代碼上會變得相當簡潔,不過如果設計不當,會造成無窮循環(huán)或堆迭溢滿的 情形,所以遞歸的程序中心必須含有 if...then 或 Select Case 等設計,以終止遞歸執(zhí)行。 在游戲過程中,當游戲者按下非地雷方塊時,方塊會沿四周八個方向向外翻開非地雷的方塊。 程序的執(zhí)行方面必須判斷:以按下方塊為中心,檢查周圍八個方塊是否為非地雷方塊,若其中有一個方塊是非地雷方塊時,則又以其為中心,向外檢查周圍八個方塊是否為非地雷方塊,如此反復的執(zhí)行即構成遞歸的使用條件。 前面已經提到,遞歸必須設計終止的條件判斷,在本游戲的遞歸架構中,當判斷方塊的內容為數字時(即在非地雷方塊周圍),即立即停止 遞歸程序。 遞歸其實也不是萬能的,以本游戲做測試,當地雷區(qū)范圍越大,且地雷數目不多時(一翻開非地雷方塊,幾乎全部方塊都會翻開),執(zhí)行遞歸就會變的非常緩慢,甚至造成堆迭溢滿(不足)的情形,所以在游戲設計上必須考慮地雷區(qū)的大小,以免造成執(zhí)行時錯誤中斷的情況發(fā)生。 public void init_mine(){//判斷每個格子周圍雷的個數,并將其作為非雷格子的一個屬性 mine[] around_tnt。 for(int i=0。i。i++){ around_tnt=new mine[8]。 int around_tnt_count=0。 int up=1,right=1,down=1,left=1。 int right_up=1,right_down=1。 int left_up=1,left_down=1。 if(icols=0){ up=icols。 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 23 around_tnt[0]=cells[up]。 } if(((i+1)%cols)!=0){ right=i+1。 around_tnt[1]=cells[right]。 } if(i+cols) { down=i+cols。 around_tnt[2]=cells[down]。 } if((i%cols)!=0) { left=i1。 around_tnt[3]=cells[left]。 } if(up=0amp。amp。right=0) { right_up=up+1。 around_tnt[4]=cells[right_up]。 } if(right=0amp。amp。down=0) { right_down=down+1。 around_tnt[5]=cells[right_down]。 } if(left=0amp。amp。up=0) { left_up=up1。 around_tnt[6]=cells[left_up]。 } if(left=0amp。amp。down=0) { left_down=down1。 around_tnt[7]=cells[left_down]。 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 24 } for(mine m:around_tnt){ if(m!=nullamp。amp。()) around_tnt_count++。 } cells[i].setAround_tnt(around_tnt)。 cells[i].setAround_tnt_count(around_tnt_count)。 } } 游戲的判斷 游戲成功 將所有的雷都正確的標示出來或把雷全部留下不去翻開它,游戲就會就是成功,如圖 64。 圖 64 游戲成功界面 public void guoguan(){ setTitle(友情提示 )。 職場大變樣社區(qū)( ):下載畢業(yè)設計成品 25 JLabel jb=new JLabel(恭喜您已經過了第 +guanka+關 O(∩_∩)O哈哈 ~ + 找到 +score+個雷 ︿ ( ̄︶ ̄ )︿ + + 點擊 start 開始下一關。 (o゜ ▽ ゜ )o☆ [BINGO!])。 add(jb)。 setVisible(true)。 } 游戲失敗 當鼠標左鍵按下的方塊為地雷方塊時,地雷將
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1