java課設(shè)走迷宮(共12頁)_第1頁
java課設(shè)走迷宮(共12頁)_第2頁
java課設(shè)走迷宮(共12頁)_第3頁
java課設(shè)走迷宮(共12頁)_第4頁
java課設(shè)走迷宮(共12頁)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄1設(shè)計(jì)目的1.1課程設(shè)計(jì)的目的2總體設(shè)計(jì)2.1設(shè)計(jì)思路2.2設(shè)計(jì)方法3關(guān)鍵技術(shù)4程序流程5主要源代碼6. 運(yùn)行結(jié)果及結(jié)論7.參考文獻(xiàn)1.設(shè)計(jì)目的1.1課程設(shè)計(jì)的目的隨著科技進(jìn)步,時(shí)代發(fā)展,計(jì)算機(jī)走進(jìn)了大家的生活。計(jì)算機(jī)程序強(qiáng)大的功能為使用者提供服務(wù),編程語言也變得越來越流行。Java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)ο蟆⒖缙脚_(tái)、分布應(yīng)用等特點(diǎn)。面向?qū)ο蟮拈_發(fā)方法是當(dāng)今世界最流行的開發(fā)方法,它不僅具有更貼近自然的語義,而且有利于軟件的維護(hù)和繼承。為了進(jìn)一步鞏固課堂上所學(xué)到的知識(shí),深刻把握J(rèn)ava語言的重要概念及其面向?qū)ο蟮奶匦?,熟練?yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計(jì)方

2、法解決實(shí)際問題的能力,也是為了增加同學(xué)們娛樂游戲選擇而開發(fā)了一個(gè)適合學(xué)生的,能提升思考力的迷宮冒險(xiǎn)游戲,這既鍛煉了動(dòng)手能力,還能進(jìn)行消遣娛樂,可謂一舉兩得。2.總體設(shè)計(jì)2.1設(shè)計(jì)思路根據(jù)對(duì)游戲系統(tǒng)進(jìn)行的需求分析,本系統(tǒng)將分為6個(gè)模塊:分別是迷宮主界面模塊、記時(shí)設(shè)計(jì)模塊、迷宮設(shè)計(jì)模塊、道路和障礙設(shè)計(jì)模塊、動(dòng)漫冒險(xiǎn)者設(shè)計(jì)模塊、出入口設(shè)計(jì)模塊。實(shí)現(xiàn)的功能有:(1)迷宮的選擇玩家可以根據(jù)自身需求來進(jìn)行選擇簡(jiǎn)單迷宮、中等迷宮、難度迷宮三類中選擇一類迷宮進(jìn)行游戲。(2)選擇道路和障礙的圖像 玩家可以根據(jù)個(gè)人喜好對(duì)迷宮中的道路和障礙的圖片進(jìn)行選擇,但是圖片的格式有規(guī)定,必須是“jpg”或“gif”格式的。(

3、3)游戲記時(shí) 當(dāng)玩家控制迷宮中的動(dòng)漫人物進(jìn)行游戲時(shí),計(jì)時(shí)器就開始進(jìn)行記時(shí),直到動(dòng)漫人物到達(dá)出口時(shí),記時(shí)結(jié)束,并在屏幕上顯示游戲用時(shí)。(4)開始游戲玩家將鼠標(biāo)移動(dòng)至迷宮中的動(dòng)漫冒險(xiǎn)者,即可看到“單擊我然后按鍵盤方向鍵”,單擊后,游戲開始。玩家即可通過鍵盤上的方向鍵進(jìn)行游戲。(5)游戲結(jié)束玩家控制動(dòng)漫冒險(xiǎn)者移動(dòng)至迷宮地圖的出口處時(shí),游戲的計(jì)時(shí)器停止計(jì)時(shí),并彈出信息框“恭喜您通關(guān)了”,游戲結(jié)束。(6)冒險(xiǎn)腳步聲玩家單擊動(dòng)漫冒險(xiǎn)者后,便可以用鍵盤方向鍵進(jìn)行控制。動(dòng)漫冒險(xiǎn)者每移動(dòng)一步便會(huì)發(fā)出一聲“嘟”的響聲。(7)重新開始玩家可以根據(jù)個(gè)人對(duì)自己通關(guān)時(shí)間長(zhǎng)短的滿意程度選擇再次挑戰(zhàn),單擊“重新開始”即可。(

4、8)計(jì)時(shí)界面位置利用邊界式布局管理器BorderLayout將計(jì)時(shí)界面置于上方。(9)再次挑戰(zhàn)界面位置利用邊界式布局管理器BorderLayout將再次挑戰(zhàn)界面置于下方。迷宮冒險(xiǎn)系統(tǒng)迷宮主界面模塊記時(shí)設(shè)計(jì)模塊迷宮設(shè)計(jì)模塊道路和障礙設(shè)計(jì)模塊動(dòng)漫冒險(xiǎn)者設(shè)計(jì)模塊出入口設(shè)計(jì)模塊圖2.1 J迷宮冒險(xiǎn)系統(tǒng)6大模塊圖2.2設(shè)計(jì)方法(1)迷宮冒險(xiǎn)系統(tǒng)主界面模塊迷宮冒險(xiǎn)系統(tǒng)主界面模塊包括MazeWindow.java和Maze.java兩個(gè)文件。MazeWindow是迷宮冒險(xiǎn)系統(tǒng)的主運(yùn)行類,其中有運(yùn)行整個(gè)程序的main方法,該文件生成了Maze類的一個(gè)實(shí)例,從而生成了迷宮冒險(xiǎn)系統(tǒng)的界面。MazeWindow類繼

5、承自JFrame類,以ActionListener為接口實(shí)現(xiàn)了事件偵聽的接口,它有一個(gè)不帶參數(shù)的構(gòu)造方法MazeWindow (),用來生成MazeWindow的實(shí)例。MazeWindow類將所有的功能集中到菜單欄中,并通過調(diào)用其他模塊來實(shí)現(xiàn)迷宮冒險(xiǎn)系統(tǒng)的各個(gè)功能。(2)記時(shí)設(shè)計(jì)模塊記時(shí)設(shè)計(jì)模塊主要由HandleMove.java共1個(gè)文件組成。HandleMove類繼承自JPanel類,以ActionListener為接口實(shí)現(xiàn)事件的偵聽的接口。該模塊利用了一個(gè)2維數(shù)組來進(jìn)行實(shí)現(xiàn),并對(duì)計(jì)時(shí)顯示的字體、背景色、顯示位置進(jìn)行設(shè)計(jì)。該模塊定義了一個(gè)無參返回值的變量SpendTime,利用SpendT

6、ime這個(gè)變量來對(duì)記時(shí)的開始觸發(fā)源和記時(shí)的結(jié)束觸發(fā)源。動(dòng)漫冒險(xiǎn)者運(yùn)動(dòng)記時(shí)開始動(dòng)漫冒險(xiǎn)者到達(dá)出口記時(shí)結(jié)束圖2.2計(jì)時(shí)流程圖(3)迷宮設(shè)計(jì)模塊迷宮設(shè)計(jì)模塊主要由2個(gè)2維數(shù)組組成,它們組成了主界面中“選擇迷宮”菜單的內(nèi)容,其中包括簡(jiǎn)單迷宮、中等迷宮、難度迷宮三大類。該模塊的類繼承自JLayeredPane類,主要通過2個(gè)2維數(shù)組來實(shí)現(xiàn)。并且對(duì)迷宮中的道路和障礙的插入圖片格式進(jìn)行了要求。該模塊使用try和catch來捕獲和處理異常。當(dāng)迷宮地圖不可用時(shí)則彈出對(duì)話框“無效的迷宮文件”。(4)道路和障礙設(shè)計(jì)模塊系統(tǒng)道路和障礙設(shè)計(jì)模塊主要由MazePoint.java這個(gè)文件組成,這個(gè)文件組成了主界面中的迷宮

7、地圖中的道路和障礙的內(nèi)容。 (5)動(dòng)漫冒險(xiǎn)者設(shè)計(jì)模塊動(dòng)漫冒險(xiǎn)者設(shè)計(jì)模塊主要是對(duì)迷宮地圖中處于入口處的動(dòng)漫冒險(xiǎn)玩家進(jìn)行設(shè)計(jì)。該模塊利用語句使鼠標(biāo)箭頭移動(dòng)到動(dòng)漫冒險(xiǎn)者上時(shí)顯示文字“單擊我,然后按鍵盤方向鍵”,并為冒險(xiǎn)者的圖片格式、長(zhǎng)度、寬帶、初始位置等等進(jìn)行進(jìn)一步的設(shè)計(jì),讓動(dòng)漫冒險(xiǎn)者更加生動(dòng)。(6)出入口設(shè)計(jì)模塊出入口設(shè)計(jì)模塊主要是定義了出口與入口以及當(dāng)動(dòng)漫冒險(xiǎn)者處于這兩個(gè)位置時(shí)的狀態(tài)和事件的鏈接。3.關(guān)鍵技術(shù)在設(shè)計(jì)走迷宮小游戲時(shí),編寫了6個(gè)JAVA源文件:MazeWindow.java、MazePoint.java、WallOrRoad.java、Maze.java、PersonInMaze.j

8、ava、HandleMove.java4.程序流程開始進(jìn)入主界面迷宮選擇NoYes路和障礙選擇簡(jiǎn)單迷宮地圖默認(rèn)的迷宮地圖中等迷宮地圖難度迷宮地圖確認(rèn)選擇Yes自行選擇符合格式的道路和障礙圖片No點(diǎn)擊冒險(xiǎn)者(3)迷宮設(shè)計(jì)模塊迷宮設(shè)計(jì)模塊主要由2個(gè)2維數(shù)組組成,它們組成了主界面中“選擇迷宮”菜單的內(nèi)容,其中包括簡(jiǎn)單迷宮、中等迷宮、難度迷宮三大類。該模塊的類繼承自JLayeredPane類,主要通過2個(gè)2維數(shù)組來實(shí)現(xiàn)。并且對(duì)迷宮中的道路和障礙的插入圖片格式進(jìn)行了要求。該模塊使用try和catch來捕獲和處理異常。當(dāng)迷宮地圖不可用時(shí)則彈出對(duì)話框“無效的迷宮文件”。(4)道路和障礙設(shè)計(jì)模塊系統(tǒng)道路和障礙

9、設(shè)計(jì)模塊主要由MazePoint.java這個(gè)文件組成,這個(gè)文件組成了主界面中的迷宮地圖中的道路和障礙的內(nèi)容。 (5)動(dòng)漫冒險(xiǎn)者設(shè)計(jì)模塊動(dòng)漫冒險(xiǎn)者設(shè)計(jì)模塊主要是對(duì)迷宮地圖中處于入口處的動(dòng)漫冒險(xiǎn)玩家進(jìn)行設(shè)計(jì)。該模塊利用語句使鼠標(biāo)箭頭移動(dòng)到動(dòng)漫冒險(xiǎn)者上時(shí)顯示文字“單擊我,然后按鍵盤方向鍵”,并為冒險(xiǎn)者的圖片格式、長(zhǎng)度、寬帶、初始位置等等進(jìn)行進(jìn)一步的設(shè)計(jì),讓動(dòng)漫冒險(xiǎn)者更加生動(dòng)。(6)出入口設(shè)計(jì)模塊出入口設(shè)計(jì)模塊主要是定義了出口與入口以及當(dāng)動(dòng)漫冒險(xiǎn)者處于這兩個(gè)位置時(shí)的狀態(tài)和事件的鏈接。(7)迷宮冒險(xiǎn)流程圖確認(rèn)選擇鍵盤方向鍵控制到達(dá)出口結(jié)束再次挑戰(zhàn)圖4.1迷宮游戲流程圖5.主要源代碼import jav

10、ax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.filechooser.*;public class MazeWindow extends JFrame implements ActionListener Maze maze; JMenuBar bar; JMenu menuChoice,menuImage; JMenuItem wallImage,roadImage,defaultImage; File mazeFile,wallImageFile,roadIma

11、geFile; JButton renew; MazeWindow() wallImageFile=new File("wall.jpg"); roadImageFile=new File("road.jpg"); bar=new JMenuBar(); menuChoice=new JMenu("選擇迷宮"); File dir=new File("."); File file=dir.listFiles(new FilenameFilter() public boolean accept(File dir,St

12、ring name) return name.endsWith("maze"); ); for(int i=0;i< file.length;i+) JMenuItem item=new JMenuItem(filei.getName(); item.addActionListener(this); menuChoice.add(item); mazeFile=new File(file0.getName(); init(); menuImage=new JMenu("選擇墻和路的圖像(JPG,GIF)"); wallImage=new JMenu

13、Item("墻的圖像"); roadImage=new JMenuItem("路的圖像"); defaultImage=new JMenuItem("墻和路的默認(rèn)圖像"); menuImage.add(wallImage); menuImage.add(roadImage); menuImage.add(defaultImage); bar.add(menuChoice); bar.add(menuImage); setJMenuBar(bar); wallImage.addActionListener(this); roadImag

14、e.addActionListener(this); defaultImage.addActionListener(this); renew=new JButton("重新開始"); renew.addActionListener(this); add(maze,BorderLayout.CENTER); add(renew,BorderLayout.SOUTH); setVisible(true); setBounds(60,60,510,480); validate(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); p

15、ublic void init() if(maze!=null) remove(maze); remove(maze.getHandleMove(); maze=new Maze(); maze.setWallImage(wallImageFile); maze.setRoadImage(roadImageFile); maze.setMazeFile(mazeFile); add(maze,BorderLayout.CENTER); add(maze.getHandleMove(),BorderLayout.NORTH); validate(); public void actionPerf

16、ormed(ActionEvent e) if(e.getSource()=roadImage) JFileChooser chooser=new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG & GIF Images", "jpg", "gif"); chooser.setFileFilter(filter); int state=chooser.showOpenDialog(null); File fil

17、e=chooser.getSelectedFile(); if(file!=null&&state=JFileChooser.APPROVE_OPTION) roadImageFile=file; maze.setRoadImage(roadImageFile); else if(e.getSource()=wallImage) JFileChooser chooser=new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter( "JPG & GIF Ima

18、ges", "jpg", "gif"); chooser.setFileFilter(filter); int state=chooser.showOpenDialog(null); File file=chooser.getSelectedFile(); if(file!=null&&state=JFileChooser.APPROVE_OPTION) wallImageFile=file; maze.setWallImage(wallImageFile); else if(e.getSource()=defaultImage

19、) wallImageFile=new File("wall.jpg"); roadImageFile=new File("road.jpg"); maze.setWallImage(wallImageFile); maze.setRoadImage(roadImageFile); else if(e.getSource()=renew) init(); else JMenuItem item=(JMenuItem)e.getSource(); mazeFile=new File(item.getText(); init(); public static

20、 void main(String args) new MazeWindow(); 6.運(yùn)行結(jié)果及結(jié)論在開發(fā)環(huán)境為JCreator的電腦上編寫java程序,利用java程序?qū)崿F(xiàn)迷宮冒險(xiǎn)的運(yùn)作。程序包含MazeWindow.java、MazePoint.java、WallOrRoad.java、Maze.java、PersonInMaze.java、HandleMove.java六個(gè)java源文件。其中MazeWindow為程序的主類,貫穿始終,通過調(diào)用其他模塊功能來實(shí)現(xiàn)整個(gè)迷宮冒險(xiǎn)小游戲的全部功能,是游戲安全運(yùn)行。程序進(jìn)過檢查修改無誤后運(yùn)行得到如下運(yùn)行結(jié)果。 6.1運(yùn)行結(jié)果示意圖7.參考文獻(xiàn)1】董小園.Java面向?qū)ο蟪绦蛟O(shè)計(jì) 清華大學(xué)出版社,2011年6月第1版2】劉升華.Java從入門到實(shí)踐M.北京:清華

溫馨提示

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

評(píng)論

0/150

提交評(píng)論