




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VisionSky 北京華際友天信息科技有限公司 (與標(biāo)題內(nèi)容相符)連連看Java小游戲畢業(yè)論文(設(shè)計(jì))學(xué)生姓名: 學(xué)號:系別:軟件技術(shù)專業(yè):軟件技術(shù)指導(dǎo)教師: 評 審 日 期: 第 2 頁 共 18 頁目 錄1導(dǎo)言11.1目的11.2范圍11.3縮寫說明 java11.4術(shù)語定義11.5引用標(biāo)準(zhǔn)11.6參考資料21.7版本更新信息22系統(tǒng)定義22.1項(xiàng)目來源及背景22.2項(xiàng)目要達(dá)到的目標(biāo)23應(yīng)用環(huán)境33.1游戲硬件環(huán)境33.2游戲運(yùn)行軟件環(huán)境34代碼設(shè)計(jì):35性能需求125.1界面需求125.2響應(yīng)時(shí)間需求135.3開放性需求135.4可擴(kuò)展性需求136產(chǎn)品提交137實(shí)現(xiàn)約束138總結(jié)14完成這次設(shè)計(jì)任務(wù)總共用了一個(gè)星期時(shí)間,前兩個(gè)日用來收集資料、學(xué)習(xí)要用到的各項(xiàng)開發(fā)技術(shù)、進(jìn)行游戲的系統(tǒng)分析,第三日用來設(shè)計(jì)系統(tǒng),第四天來測試及修改。論文的撰寫一直貫穿其中。149參考文獻(xiàn)1410致 謝15軟件071班java項(xiàng)目設(shè)計(jì) 吳義平 1 導(dǎo)言1.1 目的該文檔是關(guān)于用戶對于連連看Java小游戲的功能和性能的要求,重點(diǎn)描述了連連看Java小游戲的設(shè)計(jì)需求,將作為小游戲的說明。本文檔的預(yù)期讀者是:l 設(shè)計(jì)人員劉衛(wèi)、吳義平l 開發(fā)人員 劉衛(wèi)、吳義平l 項(xiàng)目管理人員l 測試人員l 用戶1.2 范圍該文檔是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決整個(gè)游戲的“做什么”的問題。在這里,對于開發(fā)技術(shù)并沒有涉及,而主要是通過建立模型的方式來描述用戶的需求,為客戶、用戶、開發(fā)方等不同參與方提供一個(gè)交流的渠道。1.3 縮寫說明 javaJava Server Page(Java服務(wù)器頁面)的縮寫,一個(gè)腳本化的語言。UMLJava Server Page(Java服務(wù)器頁面)的縮寫,一個(gè)腳本化的語言。1.4 術(shù)語定義無1.5 引用標(biāo)準(zhǔn)1 企業(yè)文檔格式標(biāo)準(zhǔn) V1.1軟件工程教案教程 2 需求規(guī)格報(bào)告格式標(biāo)準(zhǔn) V1.1軟件工程教案教程1.6 參考資料1 Java基礎(chǔ)教程 V1.1軟件工程教案教程2 需求規(guī)格報(bào)告格式標(biāo)準(zhǔn) V1.1軟件工程教案教程1.7 版本更新信息本文檔的更新記錄如表A-1。表A-1 版本更新記錄修改編號修改日期修改后版本修改位置修改內(nèi)容概述001200911050.1全部初始發(fā)布版本2 系統(tǒng)定義我們分別闡述一下項(xiàng)目的來源、背景和項(xiàng)目的目標(biāo)。2.1 項(xiàng)目來源及背景本項(xiàng)目的是是您的生活不再乏味,讓你看到自己的智慧和天賦,使自己對自己更加充滿信心。相信通過此游戲會(huì)讓你看到自己聰明的一面?,F(xiàn)在生活忙忙碌使人的心理和身體健康受到很大的威脅。為了解決些問題特此開發(fā)了連連看小游戲。2.2 項(xiàng)目要達(dá)到的目標(biāo)本項(xiàng)目設(shè)定的目標(biāo)如下:1. 系統(tǒng)能夠提供友好的用戶界面,使操作人員的心情放松2. 系統(tǒng)具有良好的運(yùn)行效率,能夠得到快速發(fā)現(xiàn)自我的目的3. 系統(tǒng)應(yīng)有良好的可擴(kuò)充性,可以容易的轉(zhuǎn)入其它系統(tǒng)應(yīng)用。4. 平臺(tái)的設(shè)計(jì)具有一定的靈活性。3 應(yīng)用環(huán)境 本項(xiàng)目的應(yīng)用環(huán)境可以分硬件環(huán)境、軟件環(huán)境和網(wǎng)絡(luò)環(huán)境來描述。3.1 游戲硬件環(huán)境本系統(tǒng)的硬件環(huán)境如下:l 客戶機(jī):普通PCn CPU:P4 1.8GHzn 內(nèi)存:256MB以上n 分辨率:推薦使用1024*768像素l 數(shù)據(jù)庫服務(wù)器n CPU:P4 1.8GHzn 內(nèi)存:256MB以上3.2 游戲運(yùn)行軟件環(huán)境l 操作系統(tǒng):Windows 2000/xpl 開發(fā)環(huán)境:ecplisemel 開發(fā)工具包:JDK Version 1.624 代碼設(shè)計(jì):一簡單代碼設(shè)計(jì):1. /連連看java源代碼 2. import javax.swing.*; 3. import java.awt.*; 4. import java.awt.event.*; 5. public class lianliankan implements ActionListener 6. 7. JFrame mainFrame; /主面板 8. Container thisContainer; 9. JPanel centerPanel,southPanel,northPanel; /子面板 10. JButton diamondsButton = new JButton65;/游戲按鈕數(shù)組 11. JButton exitButton,resetButton,newlyButton; /退出,重列,重新開始按鈕 12. JLabel fractionLable=new JLabel(0); /分?jǐn)?shù)標(biāo)簽 13. JButton firstButton,secondButton; /分別記錄兩次被選中的按鈕 14. int grid = new int87;/儲(chǔ)存游戲按鈕位置 15. static boolean pressInformation=false; /判斷是否有按鈕被選中 16. int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; /游戲按鈕的位置坐標(biāo) 17. int i,j,k,n;/消除方法控制 18. public void init() 19. /開始方法:20. 21. public void randomBuild() 22. /產(chǎn)生隨基數(shù)23. public void fraction() 24. /計(jì)數(shù)25. public void reload() 26. /窗體的重新加載27. public void estimateEven(int placeX,int placeY,JButton bz) 28. /判斷兩次點(diǎn)擊的兩次數(shù):29. public void xiao() /相同的情況下能不能消去。仔細(xì)分析,不一條條 30. /相同的情況下能不能消去。仔細(xì)分析,不一條條 31. 32. public void linePassOne() 33. /判斷行是否可以消除:34. public void rowPassOne() 35. /判斷列是否可消除;36. public void remove() 37. /消除所選按鈕;38. public void actionPerformed(ActionEvent e) 39. /監(jiān)聽事件;40. public static void main(String args) 41. /游戲入口;二詳細(xì)代碼編寫:/連連看java源代碼 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class lianliankan implements ActionListener JFrame mainFrame; /主面板 Container thisContainer; JPanel centerPanel,southPanel,northPanel; /子面板 JButton diamondsButton = new JButton65;/游戲按鈕數(shù)組 JButton exitButton,resetButton,newlyButton; /退出,重列,重新開始按鈕 JLabel fractionLable=new JLabel(0); /分?jǐn)?shù)標(biāo)簽 JButton firstButton,secondButton; /分別記錄兩次被選中的按鈕 int grid = new int87;/儲(chǔ)存游戲按鈕位置 static boolean pressInformation=false; /判斷是否有按鈕被選中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; /游戲按鈕的位置坐標(biāo) int i,j,k,n;/消除方法控制 1.開始方法:public void init() mainFrame=new JFrame(JKJ連連看); thisContainer = mainFrame.getContentPane(); thisContainer.setLayout(new BorderLayout();centerPanel=new JPanel(); southPanel=new JPanel(); northPanel=new JPanel(); thisContainer.add(centerPanel,Center); thisContainer.add(southPanel,South); thisContainer.add(northPanel,North); centerPanel.setLayout(new GridLayout(6,5); for(int cols = 0;cols 6;cols+) for(int rows = 0;rows 5;rows+ ) diamondsButtoncolsrows=new JButton(String.valueOf(gridcols+1rows+1); diamondsButtoncolsrows.addActionListener(this); centerPanel.add(diamondsButtoncolsrows); exitButton=new JButton(退出); exitButton.addActionListener(this); resetButton=new JButton(重列); resetButton.addActionListener(this); newlyButton=new JButton(再來一局); newlyButton.addActionListener(this); southPanel.add(exitButton); southPanel.add(resetButton); southPanel.add(newlyButton); fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText(); northPanel.add(fractionLable); mainFrame.setBounds(280,100,500,450); mainFrame.setVisible(true); 2.產(chǎn)生隨基數(shù):public void randomBuild() int randoms,cols,rows; for(int twins=1;twins=15;twins+) randoms=(int)(Math.random()*25+1); for(int alike=1;alike=2;alike+) cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); while(gridcolsrows!=0) cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); this.gridcolsrows=randoms; 3.計(jì)數(shù):public void fraction() fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText()+100); 4.重新加載;public void reload() int save = new int30; int n=0,cols,rows; int grid= new int87; for(int i=0;i=6;i+) for(int j=0;j=0) cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); while(gridcolsrows!=0) cols=(int)(Math.random()*6+1); rows=(int)(Math.random()*5+1); this.gridcolsrows=saven; n-; mainFrame.setVisible(false); pressInformation=false; /這里一定要將按鈕點(diǎn)擊信息歸為初始 init(); for(int i = 0;i 6;i+) for(int j = 0;j 5;j+ ) if(gridi+1j+1=0) diamondsButtonij.setVisible(false); 5.判斷所單擊的兩次數(shù)是否相同:public void estimateEven(int placeX,int placeY,JButton bz) if(pressInformation=false) x=placeX; y=placeY; secondMsg=gridxy; secondButton=bz; pressInformation=true; else x0=x; y0=y; fristMsg=secondMsg; firstButton=secondButton; x=placeX; y=placeY; secondMsg=gridxy; secondButton=bz; if(fristMsg=secondMsg & secondButton!=firstButton) xiao(); 6.消除所選的按鈕:public void xiao() /相同的情況下能不能消去。仔細(xì)分析,不一條條注釋 if(x0=x &(y0=y+1|y0=y-1) | (x0=x+1|x0=x-1)&(y0=y) /判斷是否相鄰 remove(); else for (j=0;jj) /如果第二個(gè)按鈕的Y坐標(biāo)大于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕左邊 for (i=y-1;i=j;i- ) /判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕 if (gridxi!=0) k=0; break; else k=1; /K=1說明通過了第一次驗(yàn)證 if (k=1) linePassOne(); if (yj) /如果第二個(gè)按鈕的Y坐標(biāo)小于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕右邊 for (i=y+1;i=j ;i+ ) /判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕 if (gridxi!=0) k=0; break; else k=1; if (k=1) linePassOne(); if (y=j ) linePassOne(); if (k=2) if (x0=x) remove(); if (x0x) for (n=x0;nx) for (n=x0;n=x+1 ;n- ) if (gridnj!=0) k=0; break; if(gridnj=0 & n=x+1) remove(); for (i=0;ii) for (j=x-1;j=i ;j- ) if (gridjy!=0) k=0; break; else k=1; if (k=1) rowPassOne(); if (xi) for (j=x+1;j=i;j+ ) if (gridjy!=0) k=0; break; else k=1; if (k=1) rowPassOne(); if (x=i) rowPassOne(); if (k=2) if (y0=y) remove(); if (y0y) for (n=y0;ny) for (n=y0;n=y+1 ;n-) if (gridin!=0) k=0; break; if(gridin=0 & n=y+1) remove(); 7.判斷同行是否可消除:public void linePassOne() if (y0j) /第一按鈕同行空按鈕在左邊 for (i=y0-1;i=j ;i- ) /判斷第一按鈕同左側(cè)空按鈕之間有沒按鈕 if (gridx0i!=0) k=0; break; else k=2; /K=2說明通過了第二次驗(yàn)證 if (y0j) /第一按鈕同行空按鈕在與第二按鈕之間 for (i=y0+1;ii) for (j=x0-1;j=i ;j- ) if (gridjy0!=0) k=0; break; else k=2; if (x0i) for (j=x0+1;j=i ;j+ ) if (gridjy0!=0) k=0; break; else k=2; 9.消除所選按鈕:public void remove() firstButton.setVisible(false); secondButton.setVisible(false); fraction(); pressInformation=false; k=0; gridx0y0=0; gridxy=0; 10.按鈕的相應(yīng)事件public void actionPerformed(ActionEvent e) if(e.getSource()=newlyButton) int grid = new int87; this.grid = grid; randomBuild(); mainFrame.setVisible(false); pressInformation=false; init(); if(e.getSource()=exitButton) System.exit(0); if(e.getSource()=resetButton) reload(); for(int cols = 0;cols 6;cols+) for(int rows = 0;rows 5;rows+ ) if(e.getSource()=diamondsButtoncolsrows) estimateEven(cols+1,rows+1,diamondsButtoncolsrows); 11.游戲的入口:public static void main(String args
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紙的發(fā)明與文化傳播教學(xué)教案:初中歷史課程
- 上海華二附中高一(下)期末數(shù)學(xué)試題及答案
- 2022學(xué)年上海進(jìn)才中學(xué)高一(下)期末政治試題及答案
- 2021學(xué)年上??亟袑W(xué)高一(下)期中語文試題及答案
- 百年孤獨(dú)的經(jīng)典名句解讀:文學(xué)鑒賞教學(xué)教案
- 英語現(xiàn)在完成時(shí)態(tài)結(jié)構(gòu)與應(yīng)用實(shí)例講解教案
- 夏日海灘的回憶抒情類作文13篇
- 公交公司比賽活動(dòng)方案
- 公交職工互助活動(dòng)方案
- 公眾號元旦活動(dòng)方案
- 絲網(wǎng)除沫器小計(jì)算
- 制缽機(jī)的設(shè)計(jì)(機(jī)械CAD圖紙)
- 《土木工程生產(chǎn)實(shí)習(xí)報(bào)告》
- 11分泌性中耳炎學(xué)習(xí)課程
- 明基逐鹿eHR白皮書(DOC 30頁)
- 三年級下冊美術(shù)課件-第15課色彩拼貼畫|湘美版(共11張PPT)
- 水稻病蟲統(tǒng)防統(tǒng)治工作總結(jié)
- 水在不同溫度下的折射率、粘度和介電常數(shù)
- 四柱特高弟子班絕密資料——席學(xué)易
- 呼吸機(jī)基礎(chǔ)知識(shí)最終版
- 廣安市教育局文件材料歸檔范圍及保管期限表
評論
0/150
提交評論