java課設基于Java的連連看游戲軟件設計_第1頁
java課設基于Java的連連看游戲軟件設計_第2頁
java課設基于Java的連連看游戲軟件設計_第3頁
java課設基于Java的連連看游戲軟件設計_第4頁
java課設基于Java的連連看游戲軟件設計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、沈陽理工大學課程設計報告目錄1.課設軟件主要功能12.類總體設計12.1 類組合關系圖22.2 主類22.3 其它類33.類詳細設計(畫UML圖),對類成員詳細說明33.1 Lianliankan類(主類)3 3.1.1方法設計33.1.2成員變量74.關鍵類成員函數流程圖及代碼(詳細注釋)84.1關鍵類成員函數流程圖8 4.1.1主函數8 4.1.2算法流程圖94.2程序代碼(節選)105.軟件運行結果13 結論14 參考文獻141. 課設軟件主要功能(1)、用戶可以通過點擊JDK中的“執行文件”,開始新游戲程序【1】【2】。程序會載入數字,并通過特定的算法排列數字,并標記數字,以便判斷數字

2、是否相同。記錄數字坐標,以方便計算數字是否可以相連。確定數字大小,以確定用戶點擊的是哪個數字。圖1 數字連接方式(2)、用戶選擇兩張一樣的數字,通過鼠標進行選取(如圖1),如果用戶兩次點擊的數字不相同,那么系統認為用戶沒有點(鼠標記數歸 0),以完成用戶以后的選取工作。如果用戶選擇的是相同的數字,那么系統會消除這兩個數字,并使鼠標記數為 0,并消除這兩個數字的標記,使里面的數字被標記在外面。以便用戶可以進行以后的選擇。(3)、用戶也可使通過使用“重列”功能進行數字重新排版。(4)、用戶點擊“再來一局”重新開始新的游戲。 (5)、用戶點擊“退出”結束游戲。2. 類總體設計數字連連看游戲程序中只有

3、一個類,類名為Lianliankan,該類實現了接口ActionListener;該類總共有十一個方法,他們的功能分別是:init()初始化;randomBuild()產生十五對隨機數字;fraction()計算得分;reload()將游戲按鈕重列;estimateEven(int placeX,int placeY,JButton bz)傳進兩個int型和一個JButton型的三個參數(分別是擊中的按鈕位置坐標和按鈕),選中按鈕信息的存儲與操作;xiao()消去符合游戲規則的相同的兩個按鈕;linePassOne()在第一個按鈕同行有空按鈕的條件下判斷第二個轉折點出現的情況;rowPassO

4、ne()在第一個按鈕同列有空按鈕的條件下判斷第二個轉折點出現的情況;remove():將相同的兩個按鈕消去;actionPerformed()實現按鈕事件的監聽;main()主方法?!?】2.1 類組合關系圖圖2.1 主類組合關系圖【4】2.2 主類:Lianliankan類程序代碼如下【5】【6】:public class Lianliankan implements ActionListener JFramemainFrame; /主面板 Container thisContainer; JPanelcenterPanel,southPanel,northPanel; /子面板 JButt

5、ondiamondsButton = new JButton65;/游戲按鈕數組 JButtonexitButton,resetButton,newlyButton; /退出,重列,重新開始按鈕 JLabelfractionLable=new JLabel("0"); /分數標簽 JButtonfirstButton,secondButton; /分別記錄兩次被選中的按鈕 int grid = new int87;/儲存游戲按鈕位置 static booleanpressInformation=false; /判斷是否有按鈕被選中 int x0=0,y0=0,x=0,y=0

6、,fristMsg=0,secondMsg=0,validateLV; /游戲按鈕的位置坐標 inti,j,k,n;/消除方法控制2.3 其它類Lianliankan類只有一個主類,其他都是主類里面的方法,例如:randomBuild()、remove()、main(String args)等。3. 類詳細設計(畫UML圖),對類成員詳細說明3.1 Lianliankan類(主類)3.1.1 方法設計1)主類Lianliankan的UML關系圖:JavaUMLpublic class Lianliankan implements ActionListener public static voi

7、d main(String args) Lianliankanllk = new Lianliankan(); 圖2.2 UML類圖【7】2)主類Lianliankan與方法的數據視圖:圖3.1 成員方法圖注:1、 init() :初始化2、 randomBuild():產生十五對隨機數字代碼如下: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;a

8、like+) 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、 fraction():計算得分4、 reload():將游戲按鈕重列5、 estimateEven(int placeX,int placeY,JButton bz):傳進兩個int型和一個JButton型的三個參數(分別是擊中的按

9、鈕位置坐標和按鈕),選中按鈕信息的存儲與操作代碼如下: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; secondBu

10、tton=bz; if(fristMsg=secondMsg && secondButton!=firstButton) xiao(); 6、 xiao():消去符合游戲規則的相同的兩個按鈕7、 linePassOne()、rowPassOne():在第一個按鈕同行、列有空按鈕的條件下判斷第二個轉折點出現的情況8、 remove():將相同的兩個按鈕消去代碼如下:public void remove() firstButton.setVisible(false); secondButton.setVisible(false); fraction(); pressInformat

11、ion=false; k=0; gridx0y0=0; gridxy=0; 9、 actionPerformed(ActionEvent e):實現按鈕事件的監聽代碼如下: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()=exitButt

12、on) 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); 10、 main(String args):主方法,開始程序運行代碼如下:public static void main(String args)

13、Lianliankan llk = new Lianliankan(); llk.randomBuild(); llk.init(); 3.1.2成員變量 圖3.2 成員變量圖代碼如下(含注釋):public class Lianliankan implements ActionListener JFramemainFrame; /主面板 Container thisContainer; JPanelcenterPanel,southPanel,northPanel; /子面板 JButtondiamondsButton = new JButton65;/游戲按鈕數組 JButtonexitB

14、utton,resetButton,newlyButton; /退出,重列,重新開始按鈕 JLabelfractionLable=new JLabel("0"); /分數標簽 JButtonfirstButton,secondButton; /分別記錄兩次被選中的按鈕 int grid = new int87;/儲存游戲按鈕位置 static booleanpressInformation=false; /判斷是否有按鈕被選中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; /游戲按鈕的位置坐標 inti,j

15、,k,n;/消除方法控制4.關鍵類成員函數流程圖及代碼(詳細注釋)4.1關鍵類成員函數流程圖 4.1.1主函數圖4.1 主函數流程圖【8】 4.1.2算法流程圖圖4.2 算法模塊流程圖【8】4.2程序代碼(節選)【9】public void xiao() /相同的情況下能不能消去。仔細分析,不一條條注釋if(x0=x &&(y0=y+1|y0=y-1) | (x0=x+1|x0=x-1)&&(y0=y) /判斷是否相鄰remove();elsefor (j=0;j<7;j+ ) if (gridx0j=0) /判斷第一個按鈕同行哪個按鈕為空if (y>

16、;j) /如果第二個按鈕的Y坐標大于空按鈕的Y坐標說明第一按鈕在第二按鈕左邊for (i=y-1;i>=j;i- ) /判斷第二按鈕左側直到第一按鈕中間有沒有按鈕if (gridxi!=0) k=0;break;else k=1; /K=1說明通過了第一次驗證if (k=1)linePassOne();if (y<j) /如果第二個按鈕的Y坐標小于空按鈕的Y坐標說明第一按鈕在第二按鈕右邊for (i=y+1;i<=j ;i+ ) /判斷第二按鈕左側直到第一按鈕中間有沒有按鈕if (gridxi!=0)k=0;break;else k=1; if (k=1)linePassOn

17、e();if (y=j ) linePassOne();if (k=2) if (x0=x) remove();if (x0<x) for (n=x0;n<=x-1;n+ )if (gridnj!=0)k=0;break;if(gridnj=0 && n=x-1)remove();if (x0>x)for (n=x0;n>=x+1 ;n- ) if (gridnj!=0)k=0;break;if(gridnj=0 && n=x+1) remove();for (i=0;i<8;i+ ) /列if (gridiy0=0) if (x&

18、gt;i) for (j=x-1;j>=i ;j- ) if (gridjy!=0)k=0;break;else k=1; if (k=1)rowPassOne();if (x<i) 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 (y0<y) for (n=y0;n<=y-1 ;n+ ) if (gridin!=0) k=0;break;if(gridin=0 && n=y-1)remove();if (y0>y) for (n=y0;n>=y+1 ;n-) if (gridin!=0) k=0;break;if(gridin=0 && n=y+1) remove();5.軟件運行結果1)打開游戲運行界面:圖5.1 CMD運行界面【10】2)游戲運行界面:圖5.2 游戲運行圖結論1)本課題采用Java語言

溫馨提示

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

評論

0/150

提交評論