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

正文內(nèi)容

基于java的掃雷課程設計-文庫吧

2025-04-17 20:01 本頁面


【正文】 面。游戲等級分為三級:各等級方塊數(shù)為 —— 初級、中級、高級;雷區(qū)每個方塊下面或埋藏有 1 個地雷,或者沒有地雷; 挖雷:將光標移到某個方塊,可挖開它;若所揭方 塊下有雷,則踩雷,此時所有含地雷的塊都標記 該局游戲失敗 );如果方塊上出現(xiàn)數(shù)字,它代表在它周圍的 8 個方塊中共有多少顆地雷; 標記地雷:在光標所在的某個方塊上右擊,則標記此塊下埋著地雷(有可能也是誤標)。每標記一個地雷,地雷數(shù)減少 1; 掃雷游戲的基本要求 Windows 2021/XP 系統(tǒng)提供的掃雷游戲是一個很有趣的游戲。本章的課程設計使用 Java 語言編寫一個與其類似的掃雷游戲。具體要求如下: (1) 掃雷游戲分為初級、中級和高級三個級別。單擊游戲菜單可以選擇“初級”、“中級”和“高級”。 第 5 頁 (2) 選擇級別后將出現(xiàn)相應級別的掃雷區(qū)域,這時用戶使用鼠標左鍵單擊‘“開始”便啟動計時器。 (3) 用戶要揭開某個方塊,可左鍵單擊它。若所揭方塊下有雷,用戶便輸了這一局,若所揭方塊下無雷,則顯示一個數(shù)字,該數(shù)字代表方塊的周圍的 8個方塊中共有多少顆雷。 (4) 如果用戶認為某個方塊下埋著雷,單擊右鍵可以在方塊上標識一個用戶認為是雷的圖標,即給出一個掃雷標記。用戶每標記出一個掃雷標記 (無論用戶的標記是否正確 ),程序將顯示的剩余雷數(shù)減少一個。 (5)當用戶點中雷時,將有“你輸了”的提示出現(xiàn),勝利時,將有“你贏 了”的提示出現(xiàn)。 功能需求分析 本程序為 java 課程設計。參考 Windows 自帶的掃雷游戲做了簡化。用 java編寫,采用了 Swing 界面。實踐了 java 課程多方面的內(nèi)容。 本程序實現(xiàn)了主要游戲的主要方面,單游戲固定為 10 x 10 格,難度三級:12, 24, 36。主要實現(xiàn)了如下算法:單擊某行某列后產(chǎn)生不在單擊處引爆的地圖。出現(xiàn)空格后引發(fā)遞歸的清空算法。檢測是否所有地雷都被標記,且沒有多標的勝利檢測算法。控制一個計數(shù)器產(chǎn)生計時效果的計時器算法。等侯用戶單擊返回的線程。以及可區(qū)分用戶鼠標左鍵,右 鍵和左右兩鍵單擊的事件處理方法。 程序設計主要考慮了程序的完整性和規(guī)范性。界面符合 Windows 常規(guī),主要通過菜單和按鈕與用戶交互。所有菜單項都實現(xiàn)了響應功能。且主界面多用圖標示意,較美觀。 第 6 頁 第三章 游戲的具體分析 總體功能圖 圖 31 總體功能圖 第 7 頁 主要功能設計流程 總體流程圖 圖 321 總體流程圖 開始 定義并初始化按鈕,菜單等 事件處理 菜單 按鈕 重新開始 方塊 開局 初級 高級 中級 自定義 英雄榜 退出 展示相應效果 N 是否點中雷 結束 Y 算法課程設計 掃雷游戲 第三章 游戲的具體分析 第 8 頁 雷區(qū)設計流程圖 開 始開 始定 義 并 初 始 化M i n e G r i d 類獲 取 相 應 的 設置 , 并 為 方 塊 產(chǎn)生 隨 機 數(shù) 字 賦 值計 數(shù) 器 數(shù) 小 于 等 級 雷 數(shù)存 放 賦 值 雷區(qū) , 計 數(shù) 器 加 1鼠 標 是 否 點 擊處 理 周 圍 信 息 ,并 顯 示 相 應 效 果YNYN 圖 322 雷區(qū)設計流程圖 算法課程設計 掃雷游戲 第三章 游戲的具體分析 第 9 頁 排行榜設計流程圖 開 始結 束讀 取 游 戲 級 別以 及 記 錄游 戲 是 否 完 成完 成 時 間 是 否 更 短更 新 原 始 記 錄并 且 保 存YNNY 圖 323 排行榜設計流程圖 各個類的詳細介紹與關鍵代碼 類之間關系圖 圖 331 類之間關系圖 算法課程設計 掃雷游戲 第三章 游戲的具體分析 第 10 頁 MainFrame 類 MainFrame 主程序類是整個程序的入口,通過 package 。包將其放在 nicholas 的 game 下的 mine 子文件夾內(nèi),繼承了 JFrame 并實現(xiàn)了ActionListener、實現(xiàn)了主 界面各控件的布局、 led 燈,時間計數(shù)器,級別,失敗和成功,各種狀態(tài)的初始化。還實現(xiàn)了從 mine 文件里讀取信息和保存信息并實現(xiàn)鼠標雙擊單擊,雙擊,移動時發(fā)生的事件。其關鍵性代碼如下: private class StatusMouseAdapter extends MouseAdapter { private boolean mouseIn。 private boolean mouseDown。 private Icon icon。 public StatusMouseAdapter() { super()。 } public void mouseEntered(MouseEvent me) {//組件按下時 mouseIn = true。 if(mouseDown) { (())。 icon = ()。 (().getImageicon(18))。 } } public void mousePressed(MouseEvent me) {//組件釋放時 mouseDown = true。 (())。 icon = ()。 (().getImageicon(18))。 } public void mouseReleased(MouseEvent me) { mouseDown = false。 (icon)。 (())。 if(mouseIn) restartGame()。 } public void mouseExited(MouseEvent me) { mouseIn = false。 if(mouseDown) { 第 11 頁 (icon)。 (())。 } } } public void mouseEntered(MouseEvent me) {//鼠標按下 current = (MineGrid)()。 if(leftDownamp。amp。rightDown) { pressAround(current)。 } else if(leftDown) { pressGrid(current)。 } } public void mouseReleased(MouseEvent me) {//鼠標釋放時 if(()) (().getImageicon(17))。 int x = ()。 int y = ()。 if(leftDown) {//左擊 leftDown = false。 if(firstClick) { timeThread = new TimeThread()。 ()。 firstClick = false。 //改變 if(mode[x][y]) { int i,j。 do { i = (int)(()*xBound)。 j = (int)(()*yBound)。 } while(mode[i][j])。 mode[x][y] = false。 mode[i][j] = true。 } } if(rightDown) {//右擊 releaseAround(current)。 rightDown = false。 if(middle) { middle = false。 } if(()) clickGrid(x,y,2)。 第 12 頁 } else { if(()) clickGrid(x,y,1)。 } } else { rightDown = false。 } } public void mouseExited(MouseEvent me) {//鼠標停止時 current = (MineGrid)()。 if(leftDownamp。amp。rightDown) { releaseAround(current)。 } else if(leftDown) { releaseGrid(current)。 } } private void pressGrid(MineGrid g) {//按下方格時 if(!()) return。 (().getImageicon(0))。 } private void releaseGrid(MineGrid g) {//釋放方格時 if(!()) return。 (().getImageicon(9))。 } LEDNumber類 LEDNumber 類:把數(shù)字格式化為液晶字體圖像 private int numberSegment[][] = { {0, 1, 2, 3, 4, 5 }, //0 {1, 2 }, //1 {0, 1, 3, 4, 6 }, //2 {0, 1, 2, 3, 6 }, //3 {1, 2, 5, 6 }, //4 {0, 2, 3, 5, 6 }, //5 {0, 2, 3, 4, 5, 6 }, //6 {0, 1, 2 }, //7 {0, 1, 2, 3, 4, 5, 6 }, //8 {0, 1, 2, 3, 5, 6 } //9 }。 用二維數(shù)組 numberSegment 來存儲數(shù)字,實現(xiàn)界面如圖 333 所示。 第 13 頁 圖 333 LED 樣式的數(shù)字 MineGrid 類 MineGrid 類:格子 用來設置網(wǎng)格的狀態(tài)、大小及位置信息。 AboutDialog 類 AboutDialog 類:幫助文檔,關于掃雷文檔的說明。 AboutDialog 類用 package 將其放在了 nicholas 下的swing 文件夾下,它繼承了 JDialog 類,并實現(xiàn)了 ActionListener 接口。 jLabel 為其創(chuàng)建了文本標簽, jButton 創(chuàng)建了按鈕, JTextArea 創(chuàng)建了文本區(qū)域。當用戶運行掃雷程序時,點擊如圖 335 所示的幫助菜單出現(xiàn)如圖 33所示的界面。 圖 335 關于掃雷界面圖 第 14 頁 圖 33 關于掃雷界面圖 CustomDialog 類 CustomDialog 類:自定義雷區(qū) 通過 Jlabel文本標簽,接收其高度,寬度,和雷數(shù)。實現(xiàn)界面如下: 圖
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1