Java程序設計報告《貪吃蛇》_第1頁
Java程序設計報告《貪吃蛇》_第2頁
Java程序設計報告《貪吃蛇》_第3頁
Java程序設計報告《貪吃蛇》_第4頁
Java程序設計報告《貪吃蛇》_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、名:名:Java程序設計課程設計報告題目:貪吃蛇游戲的設計與實現(xiàn)指導老師:專業(yè):計算機科學與技術(shù)班級:10-3一、課程設計目的貪吃蛇游戲一款非常經(jīng)典的手機游戲,因為它比較簡單有趣,無論老少都比較適合。目的是更好地了解和掌握java語言,并熟練的運用java語言來實現(xiàn)項目。培養(yǎng)自主學習的能力。本軟件在設計方面本著方便、實用及娛樂性高的宗旨,在外界進行設計的過程中,始終堅持清晰明了,在性能方面能夠?qū)崿F(xiàn)效率高,不易出錯等優(yōu)點。二、課程設計要求貪吃蛇游戲設計與實現(xiàn),主要分為以下二個模塊:游戲主界面模塊、游戲控制模塊。三、課程設計報告內(nèi)容(一)系統(tǒng)設計1、程序概述本程序是一個利用Java應用軟件制作的貪

2、吃蛇小游戲。在游戲過程中,用戶通過點擊小鍵盤區(qū)的方向鍵來控制蛇的運行方向;當蛇沒有吃到食物且碰到墻壁或自己的身體時游戲結(jié)束。本程序的另一個功能是在程序運行窗口的左上角顯示,用戶在游戲過程中所得的分數(shù),不過缺點就是在退處程序后,下次打開程序時無法保存。2、游戲的主界面設計游戲的主界面是進入游戲后,能夠給玩家第一感官的部分,主要包括游戲圖形區(qū)域界面、游戲的速度選擇更新界面、游戲分數(shù)的顯示更新界面、游戲開始按鈕、暫停游戲按鈕、退出游戲按鈕以及游戲排行榜按鈕。3、游戲控制模塊設計這個模塊是游戲的中心環(huán)節(jié),主要完成控制游戲的開始、暫停、退出等功能。為了能夠給玩家一個很好的游戲環(huán)境,這部分應該做到易懂、易

3、操作。(二)主界面設計游戲界面主框架主要包括游戲圖形區(qū)域界面、游戲的開始按鈕、暫停按鈕、游戲的退出按鈕、困難程度、積分排行、關(guān)于作者。(三)代碼設計importjava.awt.Color;importjava.awt.Container;importjava.awt.Graphics;importjava.awt.Toolkit;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.InputEvent;importjava.awt.event.KeyEvent;im

4、portjava.awt.event.KeyListener;importjavax.swing.*;publicclassTanChiSheextendsJFrameimplementsActionListener,KeyListener,RunnableprivateJMenuBarmenuBar;privateJMenuyouXiMenu,nanDuMenu,fenShuMenu,guanYuMenu;privateJMenuItemkaiShiYouXi,exitItem,zuoZheItem,fenShuItem;privateJCheckBoxMenuItemcJianDan,cP

5、uTong,cKunNan;privateintlength=6;privateToolkittoolkit;privateinti,x,y,z,objectX,objectY,object=0,growth=0,time;privateintdifficult=2;privateintm=newint50;privateintn=newint50;privateThreadshe=null;privateintlife=0;privateintfoods=0;privateintfenshu=0;publicvoidrun()publicvoidrun()/運行time=500;for(i=

6、0;i=length-1;i+)mi=90-i*10;ni=60;x=m0;y=n0;z=4;while(she!=null)check();tryshe.sleep(time);catch(Exceptionee)System.out.println(z+);publicTanChiShe()/*創(chuàng)建新對象*setVisible(true);menuBar=newJMenuBar();Containercon=getContentPane();toolkit=getToolkit();/*游戲菜單對象*youXiMenu=newJMenu(游戲”);kaiShiYouXi=newJMenuI

7、tem(”開始游戲”);exititem=newJMenuItem(退出游戲”);/*困難程度對象*nanDuMenu=newJMenu(困難程度”);cJianDan=newJCheckBoxMenuItem(簡單”);cPuTong=newJCheckBoxMenuItem(普通”);cKunNan=newJCheckBoxMenuItem(困難”);/kkkkkkkkkkkkkkkkk分數(shù)菜單對象/kkkkkkkkkkkkkkkkk分數(shù)菜單對象*fenShuMenu=fenShuMenu=newJMenu(”積分排行”);fenShuItem=newJMenuItem(最高記錄”);/k

8、kkkkkkkkkkkkkkk關(guān)于對象kkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkk關(guān)于對象kkkkkkkkkkkkkkkkkkkkkguanYuMenu=guanYuMenu=newJMenu(關(guān)于”);zuoZheItem=newJMenuItem(關(guān)于作者”);/kkkkkkkkkkkkkkk設置關(guān)于菜單kkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkk設置關(guān)于菜單kkkkkkkkkkkkkkkkkkkguanYuMenu.add(zuoZheItem);/*設置困難程度菜單*nanDuMenu.add(cJianDan);nanDuMe

9、nu.add(cPuTong);nanDuMenu.add(cKunNan);/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkfenShuMenu.add(fenShuItem);/kkkkkkkkkkkkkkkkk設置游戲菜單/kkkkkkkkkkkkkkkkk設置游戲菜單*/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkk

10、kkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkyouXiMenu.add(kaiShiYouXi);youXiMenu.add(exitItem);/kkkkkkkkkkkkkkkkkk設置主菜單kkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設置主菜單kkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkkkkkkk

11、kkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkmenuBar.add(youXiMenu);menuBar.add(nanDuMenu);menuBar.add(fenShuMenu);menuBar.add(guanYuMenu);/kkkkkkkkkkkkkkkkkkkkk監(jiān)聽注冊kkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkkkkk監(jiān)聽注冊kkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkk

12、kk/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkzuoZheItem.addActionListener(this);kaiShiYouXi.addActionListener(this);exitItem.addActionListener(this);addKeyListener(this);fenShuItem.addActionListener(this);/kkkkkkkkkkkkkkkkkkkkk加快捷鍵kkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkk

13、kkkkkkkk加快捷鍵kkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設置分數(shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkKeyStrokekeyOpenKeyStroke.getKeyStroke(O,InputEvent.CTRL_DOWN_MASK);kaiShiYouXi.setAccelerator(keyOpen);KeyStrok

14、ekeyExitKeyStroke.getKeyStroke(X,InputEvent.CTRL_DOWN_MASK);exitItem.setAccelerator(keyExit);/kkkkkkkkkkkkkkkkk設置框架kkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkk設置框架kkkkkkkkkkkkkkkkkkkkkksetJMenuBar(menuBar);setTitle(貪吃蛇);setResizable(false);setBounds(300,200,400,400);validate();setDefaultCloseOperation(E

15、XIT_ON_CLOSE);publicstaticvoidmain(Stringargs)newTanChiShe();publicvoidactionPerformed(ActionEvente)if(e.getSource()=kaiShiYouXi)length=6;life=0;foods=0;if(she=null)she=newThread(this);she.start();elseif(she!=null)she=null;she=newThread(this);she.start();if(e.getSource()=exitItem)System.exit(0);if(e

16、.getSource()=zuoZheItem)JOptionPane.showMessageDialog(this,梁瀟+nn);if(e.getSource()=fenShuItem)JOptionPane.showMessageDialog(this,最高記錄為+fenshu+);publicvoidcheck()/kkkkkkkkkkkkkk檢查一下kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkk檢查一下kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkisDead();if(she!=null)if(growth=0)refor

17、m();elseupgrowth();if(x=objectX&y=objectY)object=0;growth=1;toolkit.beep();/kkkkkkkkkkkkkkkk產(chǎn)生食物坐標kkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkk產(chǎn)生食物坐標kkkkkkkkkkkkkkkkkkkkkkif(object=0)object=1;objectX=(int)Math.floor(Math.random()*39)*10;objectY=(int)Math.floor(Math.random()*29)*10+50;this.repaint();voidis

18、Dead()if(z=4)x=x+10;elseif(z=3)x=x-10;elseif(z=2)y=y+10;elseif(z=1)y=y-10;if(x390|y390)she=null;for(i=1;ilength;i+)if(mi=x&ni=y)she=null;publicvoidupgrowth()if(length50)length+;growth-;time=time-10;reform();life+=100;if(fenshu0;i-)mi=mi-1;ni=ni-1;if(z=4)m0=m0+10;if(z=3)m0=m0-10;if(z=2)n0=n0+10;if(z=

19、1)n0=n0-10;publicvoidkeyPressed(KeyEvente)if(she!=null)if(e.getKeyCode()=KeyEvent.VK_UP)if(z!=2)z=1;check();elseif(e.getKeyCode()=KeyEvent.VK_DOWN)if(z!=1)z=2;check();elseif(e.getKeyCode()=KeyEvent.VK_LEFT)if(z!=4)z=3;check();elseif(e.getKeyCode()=KeyEvent.VK_RIGHT)if(z!=3)z=4;check();publicvoidkeyReleased(KeyEvente)/TODO自動生成方法存根publicvoidkeyTyped(KeyEvente)/TODO自動生成方法存根publ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論