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

正文內(nèi)容

北京郵電大學(xué)畢業(yè)設(shè)計畢業(yè)論文(編輯修改稿)

2024-12-29 16:43 本頁面
 

【文章內(nèi)容簡介】 所以深度優(yōu)先算法適用于較為簡單的迷宮的生成。相較而言,普里姆算法比較復(fù)雜。其生成的迷宮岔路較多,生成的迷宮看起來很自然,但是想要找出一條通路是比較有難度的。所以相比,普里姆算法適用于難度較大的迷宮生成算法。 相關(guān)示意圖如 圖 43。 北京郵電大學(xué)畢業(yè)設(shè)計 8 圖 43 深普里姆算法生成迷宮 北京郵電大學(xué)畢業(yè)設(shè)計 9 5 詳細設(shè)計 詳細設(shè)計階段的根本目標是確定應(yīng)該怎樣具體實現(xiàn) 所 要求的系統(tǒng),也就是說,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標系統(tǒng)的精確描述,從而在編碼階段可以吧這個描述直接翻譯成某種程序設(shè)計語言書寫的程序。詳細設(shè)計的結(jié)果基本上決定了最終 程序設(shè)計 代碼的質(zhì)量。詳細設(shè)計的目標你僅僅是邏輯上正確地實現(xiàn)每個模塊的功能,更重要的是設(shè)計出的處理過程盡可能簡明易懂。結(jié)構(gòu)程序設(shè)計技術(shù)是實現(xiàn)上述目標的關(guān)鍵技術(shù),因此是詳細設(shè)計的邏輯基礎(chǔ)。 核心包的設(shè)計 本游戲主要由游戲界面和游戲后臺兩大部分組成,其中 的基本類包括 如下 :AbstractMap,DFSMap,MainController,MainFrame,PathMap,Point,SetFrame,ShowPane,Test 工程圖如圖 51。 圖 51 工程圖 MainFrame 類的設(shè)計與實現(xiàn) 本類主要是主界面的顯示設(shè)計。 主界面主要由 JMenuBar、 Container、 JPanel 三個容器組成。其中 JMenuBar 主要放置菜單選項“開始”和“設(shè)置”, Container 是用來顯示地圖, JPanel 是放置“開始游戲”、“顯示路線”及上下左右四個方向鍵 。之后為菜單項設(shè)置監(jiān)聽器以及為上下左右四個方向鍵設(shè)置監(jiān)聽。 MainFrame類的主要代碼如下: @SuppressWarnings(serial) class EnterKeyListener implements KeyListener { @Override public void keyTyped(KeyEvent e) { // TODO Autogenerated method stub int keyCode = ()。 switch (keyCode) { case : 北京郵電大學(xué)畢業(yè)設(shè)計 10 (1)。 break。 case : (2)。 break。 case : (3)。 break。 case : (4)。 break。 } } class GoListener implements ActionListener// 方向監(jiān)聽 { int i。 GoListener(int i) { = i。 } @Override public void actionPerformed(ActionEvent e) { // TODO Autogenerated method stub (i)。 ()。 } } class ItemListener implements ActionListener// 菜單項監(jiān)聽器 { MainFrame mainFrame。 public ItemListener(MainFrame mainFrame) { // TODO Autogenerated constructor stub = mainFrame。 } @Override public void actionPerformed(ActionEvent e) { // TODO Autogenerated method stub if (() == item11) { (0)。 } else if (() == item21) { new SetFrame(mainFrame)。 } } } 北京郵電大學(xué)畢業(yè)設(shè)計 11 public static void main(String[] args) { new MainFrame()。 } } 主界面如圖 52。 圖 52 主界面 SetFrame 類的設(shè)計與實現(xiàn) SetFrame 主要實現(xiàn)菜單中“設(shè)置”選項的設(shè)計。 在設(shè)置選項中可以選擇生成迷宮的算法,各為深度優(yōu)先算法或者普里姆算法。還可以對游戲的難度進行設(shè)置,分別為“簡單”、“中等”、“復(fù)雜”。設(shè)置其默認選項為“深度優(yōu)先算法”和“中等”難度。設(shè)置完畢之后,按確認鍵開始游戲。 對不同的游戲難度進行相應(yīng),即不同難度的游戲設(shè)置地圖的邊界大小的不同。通過變換地圖長寬的值近而改變地圖的難易程度。 當(dāng)玩家不想在繼續(xù)游戲時 ,可選擇設(shè)置欄上的 “開始”選項,繼續(xù)選擇“退出”,則可以退出游戲。 SetFrame 類的主要代碼如下: private void setRadio() { int m = ()。 if (m == 20) (true)。 else if (m == 50) (true)。 else if (m == 35) 北京郵電大學(xué)畢業(yè)設(shè)計 12 (true)。 } private void setMapRadio() { int w = ()。 if (w == 0) (true)。 else if (w == 1) (true)。 else if (w == 2) (true)。 } class SureListener implements ActionListener { SetFrame s。 public SureListener(SetFrame setFrame) { // TODO Autogenerated constructor stub s = setFrame。 } @Override // 不同難度的響應(yīng) public void actionPerformed(ActionEvent e) { // TODO Autogenerated method stub if (() == okBut) { if (()) { (20)。 (20)。 } if (()) (0)。 else if (()) (1)。 else if (()) (2)。 } else if (() == exitBut)。 // (false)。 (true)。 (false)。 } } } 設(shè)置界面如圖 53。 北京郵電大學(xué)畢業(yè)設(shè)計 13 圖 53 設(shè)置界面圖 ShowPane 類的設(shè)計與實現(xiàn) 首先將迷宮所有格子設(shè)置成背景黑色,繪制迷宮時,所有迷宮的墻均為綠色,若尋找出的路徑中含有某塊格子,則將此塊格子設(shè)置成紅色。 若不依賴游戲?qū)ふ页龅穆窂剑峭婕易约簩ふ衣窂?,?dāng)玩家走到迷宮的出口時,則此時彈出對話框“恭喜你,到迷宮的盡頭!” ShowPane 類主要代碼如下: @SuppressWarnings(serial) public class ShowPane extends JPanel { boolean a[][]。 private static final int SX = 30。 private static final int SY = 30。 private StackPoint stack。 ShowPane(boolean a[][]) { = a。 stack = new StackPoint()。 ()。 (new Point(1, 0))。 repaint()。 } ShowPane() { a = new boolean[1][1]。 北京郵電大學(xué)畢業(yè)設(shè)計 14 stack = new StackPoint()。 ()。 } @Override protected void paintComponent(Graphics g) { // TODO Autogenerated method stub ()。 (0, 0, (), ())。 ()。 for (int i = 0。 i 。 i++) { for (int j = 0。 j a[0].length。 j++) { if (a[i][j] == false) { (SX + i * 8, SY + j * 8, 8, 8)。 } else if (isHas(i, j)) { ()。 (SX + i * 8, SY + j * 8, 8, 8)。 ()。 } } } } public void redraw(boolean a[][])// 重繪界面 { = a。 ()。 (new Point(1, 0))。 repaint()。 } public void play(int keyvalue)// 走迷宮(玩家自玩) { if (() == 1) { Point p = ()。 int x = ()。 int y = ()。 if (x == 1 amp。amp。 y == 0) { if (keyvalue == 2) { ()。 (new Point(x, y + 1))。 } } else if (x == 2 amp。amp。 y == a[0].length 1) { (this, 恭喜你,到迷宮的盡頭。 )。 } else { if (keyvalue == 1 amp。amp。 a[x][y 1] == true) { 北京郵電大學(xué)畢業(yè)設(shè)計 15 ()。 (new Point(x, y 1))。 } else if (keyvalue == 2 amp。amp。 a[x][y + 1] == true) { ()。 (new Point(x, y + 1))。 } else if (keyvalue == 3 amp。amp。 a[x 1][y] == true) { ()。 (new Point(x 1, y))。 } else if (keyvalue == 4 amp。amp。 a[x + 1][y] == true) { ()。 (new Point(x + 1, y))。 } } } repaint()。 } 相關(guān)示意圖如圖 54和圖 55。 圖 54 迷宮路線顯示圖 北京郵電大學(xué)畢業(yè)設(shè)計 16 圖 55 玩家找到出口時的相關(guān)提示 MainController 類的設(shè)計與實現(xiàn) 本類主要負責(zé)“繪制地圖”、“顯示路徑”、“隱藏路徑”單個按鈕的控制。通過為按鈕增加監(jiān)聽,使按鍵被得到相應(yīng)的控制。本游戲中,每一種游戲的難度可以繪制若干種地圖,但每種顯示的地圖只有一次顯示路徑的機會。 MainController 類的主要代碼如下: package maze4。 public class MainController { class ButtonListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // TODO Autogenera
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1