(精品論文)連連看java小游戲畢業(yè)設(shè)計論文_第1頁
(精品論文)連連看java小游戲畢業(yè)設(shè)計論文_第2頁
(精品論文)連連看java小游戲畢業(yè)設(shè)計論文_第3頁
(精品論文)連連看java小游戲畢業(yè)設(shè)計論文_第4頁
(精品論文)連連看java小游戲畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VisionSky 北京華際友天信息科技有限公司 (與標題內(nèi)容相符)連連看Java小游戲畢業(yè)論文(設(shè)計)學(xué)生姓名: 學(xué)號:系別:軟件技術(shù)專業(yè):軟件技術(shù)指導(dǎo)教師: 評 審 日 期: 第 2 頁 共 18 頁目 錄1導(dǎo)言11.1目的11.2范圍11.3縮寫說明 java11.4術(shù)語定義11.5引用標準11.6參考資料21.7版本更新信息22系統(tǒng)定義22.1項目來源及背景22.2項目要達到的目標23應(yīng)用環(huán)境33.1游戲硬件環(huán)境33.2游戲運行軟件環(huán)境34代碼設(shè)計:35性能需求125.1界面需求125.2響應(yīng)時間需求135.3開放性需求135.4可擴展性需求136產(chǎn)品提交137實現(xiàn)約束138總結(jié)14完成這次設(shè)計任務(wù)總共用了一個星期時間,前兩個日用來收集資料、學(xué)習(xí)要用到的各項開發(fā)技術(shù)、進行游戲的系統(tǒng)分析,第三日用來設(shè)計系統(tǒng),第四天來測試及修改。論文的撰寫一直貫穿其中。149參考文獻1410致 謝15軟件071班java項目設(shè)計 吳義平 1 導(dǎo)言1.1 目的該文檔是關(guān)于用戶對于連連看Java小游戲的功能和性能的要求,重點描述了連連看Java小游戲的設(shè)計需求,將作為小游戲的說明。本文檔的預(yù)期讀者是:l 設(shè)計人員劉衛(wèi)、吳義平l 開發(fā)人員 劉衛(wèi)、吳義平l 項目管理人員l 測試人員l 用戶1.2 范圍該文檔是借助于當前系統(tǒng)的邏輯模型導(dǎo)出目標系統(tǒng)的邏輯模型,解決整個游戲的“做什么”的問題。在這里,對于開發(fā)技術(shù)并沒有涉及,而主要是通過建立模型的方式來描述用戶的需求,為客戶、用戶、開發(fā)方等不同參與方提供一個交流的渠道。1.3 縮寫說明 javaJava Server Page(Java服務(wù)器頁面)的縮寫,一個腳本化的語言。UMLJava Server Page(Java服務(wù)器頁面)的縮寫,一個腳本化的語言。1.4 術(shù)語定義無1.5 引用標準1 企業(yè)文檔格式標準 V1.1軟件工程教案教程 2 需求規(guī)格報告格式標準 V1.1軟件工程教案教程1.6 參考資料1 Java基礎(chǔ)教程 V1.1軟件工程教案教程2 需求規(guī)格報告格式標準 V1.1軟件工程教案教程1.7 版本更新信息本文檔的更新記錄如表A-1。表A-1 版本更新記錄修改編號修改日期修改后版本修改位置修改內(nèi)容概述001200911050.1全部初始發(fā)布版本2 系統(tǒng)定義我們分別闡述一下項目的來源、背景和項目的目標。2.1 項目來源及背景本項目的是是您的生活不再乏味,讓你看到自己的智慧和天賦,使自己對自己更加充滿信心。相信通過此游戲會讓你看到自己聰明的一面?,F(xiàn)在生活忙忙碌使人的心理和身體健康受到很大的威脅。為了解決些問題特此開發(fā)了連連看小游戲。2.2 項目要達到的目標本項目設(shè)定的目標如下:1. 系統(tǒng)能夠提供友好的用戶界面,使操作人員的心情放松2. 系統(tǒng)具有良好的運行效率,能夠得到快速發(fā)現(xiàn)自我的目的3. 系統(tǒng)應(yīng)有良好的可擴充性,可以容易的轉(zhuǎn)入其它系統(tǒng)應(yīng)用。4. 平臺的設(shè)計具有一定的靈活性。3 應(yīng)用環(huán)境 本項目的應(yīng)用環(huán)境可以分硬件環(huán)境、軟件環(huán)境和網(wǎng)絡(luò)環(huán)境來描述。3.1 游戲硬件環(huán)境本系統(tǒng)的硬件環(huán)境如下:l 客戶機:普通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 游戲運行軟件環(huán)境l 操作系統(tǒng):Windows 2000/xpl 開發(fā)環(huán)境:ecplisemel 開發(fā)工具包:JDK Version 1.624 代碼設(shè)計:一簡單代碼設(shè)計: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); /分數(shù)標簽 13. JButton firstButton,secondButton; /分別記錄兩次被選中的按鈕 14. int grid = new int87;/儲存游戲按鈕位置 15. static boolean pressInformation=false; /判斷是否有按鈕被選中 16. int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; /游戲按鈕的位置坐標 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. /計數(shù)25. public void reload() 26. /窗體的重新加載27. public void estimateEven(int placeX,int placeY,JButton bz) 28. /判斷兩次點擊的兩次數(shù):29. public void xiao() /相同的情況下能不能消去。仔細分析,不一條條 30. /相同的情況下能不能消去。仔細分析,不一條條 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. /游戲入口;二詳細代碼編寫:/連連看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); /分數(shù)標簽 JButton firstButton,secondButton; /分別記錄兩次被選中的按鈕 int grid = new int87;/儲存游戲按鈕位置 static boolean pressInformation=false; /判斷是否有按鈕被選中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; /游戲按鈕的位置坐標 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.計數(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; /這里一定要將按鈕點擊信息歸為初始 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() /相同的情況下能不能消去。仔細分析,不一條條注釋 if(x0=x &(y0=y+1|y0=y-1) | (x0=x+1|x0=x-1)&(y0=y) /判斷是否相鄰 remove(); else for (j=0;jj) /如果第二個按鈕的Y坐標大于空按鈕的Y坐標說明第一按鈕在第二按鈕左邊 for (i=y-1;i=j;i- ) /判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕 if (gridxi!=0) k=0; break; else k=1; /K=1說明通過了第一次驗證 if (k=1) linePassOne(); if (yj) /如果第二個按鈕的Y坐標小于空按鈕的Y坐標說明第一按鈕在第二按鈕右邊 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說明通過了第二次驗證 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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論