




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、名:名:Java程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目:貪吃蛇游戲的設(shè)計(jì)與實(shí)現(xiàn)指導(dǎo)老師:專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):10-3一、課程設(shè)計(jì)目的貪吃蛇游戲一款非常經(jīng)典的手機(jī)游戲,因?yàn)樗容^簡單有趣,無論老少都比較適合。目的是更好地了解和掌握java語言,并熟練的運(yùn)用java語言來實(shí)現(xiàn)項(xiàng)目。培養(yǎng)自主學(xué)習(xí)的能力。本軟件在設(shè)計(jì)方面本著方便、實(shí)用及娛樂性高的宗旨,在外界進(jìn)行設(shè)計(jì)的過程中,始終堅(jiān)持清晰明了,在性能方面能夠?qū)崿F(xiàn)效率高,不易出錯(cuò)等優(yōu)點(diǎn)。二、課程設(shè)計(jì)要求貪吃蛇游戲設(shè)計(jì)與實(shí)現(xiàn),主要分為以下二個(gè)模塊:游戲主界面模塊、游戲控制模塊。三、課程設(shè)計(jì)報(bào)告內(nèi)容(一)系統(tǒng)設(shè)計(jì)1、程序概述本程序是一個(gè)利用Java應(yīng)用軟件制作的貪
2、吃蛇小游戲。在游戲過程中,用戶通過點(diǎn)擊小鍵盤區(qū)的方向鍵來控制蛇的運(yùn)行方向;當(dāng)蛇沒有吃到食物且碰到墻壁或自己的身體時(shí)游戲結(jié)束。本程序的另一個(gè)功能是在程序運(yùn)行窗口的左上角顯示,用戶在游戲過程中所得的分?jǐn)?shù),不過缺點(diǎn)就是在退處程序后,下次打開程序時(shí)無法保存。2、游戲的主界面設(shè)計(jì)游戲的主界面是進(jìn)入游戲后,能夠給玩家第一感官的部分,主要包括游戲圖形區(qū)域界面、游戲的速度選擇更新界面、游戲分?jǐn)?shù)的顯示更新界面、游戲開始按鈕、暫停游戲按鈕、退出游戲按鈕以及游戲排行榜按鈕。3、游戲控制模塊設(shè)計(jì)這個(gè)模塊是游戲的中心環(huán)節(jié),主要完成控制游戲的開始、暫停、退出等功能。為了能夠給玩家一個(gè)很好的游戲環(huán)境,這部分應(yīng)該做到易懂、易
3、操作。(二)主界面設(shè)計(jì)游戲界面主框架主要包括游戲圖形區(qū)域界面、游戲的開始按鈕、暫停按鈕、游戲的退出按鈕、困難程度、積分排行、關(guān)于作者。(三)代碼設(shè)計(jì)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()/運(yùn)行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分?jǐn)?shù)菜單對象/kkkkkkkkkkkkkkkkk分?jǐn)?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設(shè)置關(guān)于菜單kkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkk設(shè)置關(guān)于菜單kkkkkkkkkkkkkkkkkkkguanYuMenu.add(zuoZheItem);/*設(shè)置困難程度菜單*nanDuMenu.add(cJianDan);nanDuMe
9、nu.add(cPuTong);nanDuMenu.add(cKunNan);/kkkkkkkkkkkkkkkkkk設(shè)置分?jǐn)?shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkfenShuMenu.add(fenShuItem);/kkkkkkkkkkkkkkkkk設(shè)置游戲菜單/kkkkkkkkkkkkkkkkk設(shè)置游戲菜單*/kkkkkkkkkkkkkkkkkk設(shè)置分?jǐn)?shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設(shè)置分?jǐn)?shù)菜單kkkk
10、kkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkyouXiMenu.add(kaiShiYouXi);youXiMenu.add(exitItem);/kkkkkkkkkkkkkkkkkk設(shè)置主菜單kkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設(shè)置主菜單kkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設(shè)置分?jǐn)?shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設(shè)置分?jǐn)?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è)置分?jǐn)?shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkk
12、kk/kkkkkkkkkkkkkkkkkk設(shè)置分?jǐn)?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è)置分?jǐn)?shù)菜單kkkkkkkkkkkkkkk/*/*菜單監(jiān)聽kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkkk設(shè)置分?jǐn)?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設(shè)置框架kkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkkk設(shè)置框架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)生食物坐標(biāo)kkkkkkkkkkkkkkkkkkkkkk/kkkkkkkkkkkkkkkk產(chǎn)生食物坐標(biāo)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自動(dòng)生成方法存根publicvoidkeyTyped(KeyEvente)/TODO自動(dòng)生成方法存根publ
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國老年人保健食品行業(yè)全景評估及投資規(guī)劃建議報(bào)告
- 2025年鐵礦膨潤土項(xiàng)目可行性研究報(bào)告
- 2025年度地震災(zāi)害應(yīng)急救援事業(yè)編制服務(wù)協(xié)議4篇
- 2025年度創(chuàng)新創(chuàng)業(yè)園區(qū)招商咨詢服務(wù)合同范本
- 瑜伽館與學(xué)員二零二五年度課程退費(fèi)合同
- 2025年度綠色能源項(xiàng)目貸款服務(wù)合同范本
- 二零二五年度防火門安全性能檢測與改造合同
- 二零二五年度電子商務(wù)平臺(tái)大數(shù)據(jù)分析與應(yīng)用合作協(xié)議書
- 2025年非甾體抗炎藥物項(xiàng)目項(xiàng)目風(fēng)險(xiǎn)識(shí)別與評估綜合報(bào)告
- 環(huán)保意識(shí)在醫(yī)療建筑設(shè)計(jì)中的體現(xiàn)
- 部編版語文一年級(jí)下冊第一單元教材解讀
- 護(hù)士臨床護(hù)理組長
- 2025保安部年度工作計(jì)劃
- 土建、裝飾、維修改造等零星工程施工組織設(shè)計(jì)技術(shù)標(biāo)
- 寵物貓護(hù)理教學(xué)
- 高速公路養(yǎng)護(hù)作業(yè)安全培訓(xùn)內(nèi)容
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫
- 《大白菜種植栽培技》課件
- 北京工業(yè)大學(xué)《數(shù)據(jù)挖掘》2023-2024學(xué)年第一學(xué)期期末試卷
- 圖書借閱登記表
- 標(biāo)準(zhǔn)化機(jī)房改造方案
評論
0/150
提交評論