版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廢棄輪胎處理與綜合利用合同3篇
- 2025版時尚秀模特肖像權(quán)保密合同與商業(yè)秘密保護3篇
- 2024年03月安徽省黃山市黃山區(qū)中小企業(yè)融資擔保有限公司2024年招考1名工作人員筆試歷年參考題庫附帶答案詳解
- 2025版酒吧店長任期創(chuàng)新服務與產(chǎn)品研發(fā)合同范本3篇
- 2024年環(huán)保產(chǎn)業(yè)債權(quán)質(zhì)押投資合同范本3篇
- 2025年度環(huán)??照{(diào)安裝與室內(nèi)空氣質(zhì)量改善服務合同3篇
- 2024年03月黑龍江浦發(fā)銀行哈爾濱分行春季校園招考筆試歷年參考題庫附帶答案詳解
- 2024年版鐵路物流合作合同書版
- 2024年中國大檔前后軸市場調(diào)查研究報告
- 2024年國家重點科研項目儀器設備采購服務合同范本3篇
- 廣東省廣州市2021-2022學年高二上學期期末五校聯(lián)考生物試題
- 舞蹈演出編導排練合同模板
- 滬科版2024-2025學年七年級數(shù)學上冊計算專題訓練專題18期末復習-四大必考題型總結(jié)(學生版+解析)
- 2024短劇行業(yè)發(fā)展趨勢分析報告
- 中國法律史-001-國開機考復習資料
- 2024年人教版一上數(shù)學期末測試卷(一)增改版(含答案)
- 北京市西城區(qū)2023-2024學年六年級上學期語文期末試卷(含答案)
- 期末綜合測試卷(試題)-2024-2025學年五年級上冊數(shù)學人教版
- 【MOOC】模擬電子技術(shù)-中南大學 中國大學慕課MOOC答案
- 建筑施工安全知識培訓
- 污水泵站運營維護管理方案
評論
0/150
提交評論