




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java程序設計課程設計報告題 目貪吃蛇游戲的設計與實現指導老師:沈澤剛專業:計算機科學與技術班 級:10-3姓 名:梁瀟精品課程設計目的貪吃蛇游戲一款非常經典的手機游戲, 因為它比較簡單有趣, 無 論老少都比較適合。目的是更好地了解和掌握 java 語言,并熟練的 運用 java 語言來實現項目。培養自主學習的能力。本軟件在設計方面本著方便、 實用及娛樂性高的宗旨, 在外界進 行設計的過程中,始終堅持清晰明了,在性能方面能夠實現效率高, 不易出錯等優點。二、課程設計要求貪吃蛇游戲設計與實現,主要分為以下二個模塊:游戲主界面模 塊、游戲控制模塊。三、課程設計報告內容( 一 ) 系統設計1 、程
2、序概述本程序是一個利用 Java 應用軟件制作的貪吃蛇小游戲。在游戲過程中,用戶通過點擊小鍵盤區的方向鍵來控制蛇的運 行方向;當蛇沒有吃到食物且碰到墻壁或自己的身體時游戲結束。本程序的另一個功能是在程序運行窗口的左上角顯示, 用戶在 游戲過程中所得的分數, 不過缺點就是在退處程序后, 下次打開程序 時無法保存。2 、游戲的主界面設計游戲的主界面是進入游戲后,能夠給玩家第一感官的部分,主 要包括游戲圖形區域界面、 游戲的速度選擇更新界面、 游戲分數的顯 示更新界面、游戲開始按鈕、暫停游戲按鈕、退出游戲按鈕以及游戲 排行榜按鈕。3 、游戲控制模塊設計這個模塊是游戲的中心環節, 主要完成控制游戲的開
3、始、 暫停、 退出等功能。 為了能夠給玩家一個很好的游戲環境, 這部分應該做到 易懂、易操作。( 二) 主界面設計游戲界面主框架主要包括游戲圖形區域界面、游戲的開始按鈕、暫停按鈕、游戲的退出按鈕、 困難程度、積分排行、關于作者( 三 ) 代碼設計import java.awt.Color;import java.awt.Container;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import ja
4、va.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.*;public class TanChiShe extends JFrame implements ActionListener, KeyListe ner,R unn ableprivate JMe nuBar men uBar;private JMe nu youXiMe nu,nan DuMe nufen ShuMe nu ,gua nYuMenu;private JMe
5、nultem kaiShiYouXi,exitltem,zuoZheltem,fe nShultem;private JCheckBoxMe nultem cJia nDan ,cPuT on g,cK unNan;privateintlen gth = 6;privateToolkit toolkit;privateinti,x,y, z,o bjectX,objectY,object=0,growth=0,timeprivateintdifficult=2;privateintm= new int 50;privateintn= new int 50;privateThread she =
6、 null ;privateintlife=0;privateintfoods = 0;privateintfen shu=0;publicvoidrun() / 運行time=500;for (i=0;i<=length-1;i+)mi=90-i*10; n i=60;x=m0;y=n0;z=4;while (she!= null )check();tryshe. sleep (time);catch (Exception ee)System.out .println(z+"");public TanChiShe()創建新對象*setVisible( true);m
7、en uBar = n ewJMe nuBar();Container con=getC onten tPa ne();toolkit=getToolkit();游戲菜單對象*youXiMenu = newJMenu(” 游戲"); kaiShiYouXi =newJMenultem(” 開始游戲");exitItem =newJMenultem(” 退出游戲");困難程度對象*nanDuMenu = newJMenu("困難程度"); cJianDan = newJCheckBoxMenultem(” 簡單"); cPuTong =
8、 newJCheckBoxMenultem(” 普通"); cKunNan = newJCheckBoxMenultem(” 困難");分數菜單對象*fen ShuMe nu = fen Shultem = *newJMenu(” 積分排行"); newJMenultem("最高記錄");偽 *guanYuMenu = newJMenu(” 關于"); zuoZheltem = newJMenultem(” 關于作者");*設置困難程度菜單*設置關于菜單*gua nYuMenu .add(zuoZheltem);nan Du
9、Me nu .add(cJia nDan); nan DuMe nu .add(cPuT on g); nan DuMe nu .add(cKu nNan);/*設置分數菜單 *fen ShuMe nu.add(fe nShultem);/*設置游戲菜單 *youXiMe nu.add(kaiShiYouXi); youXiMe nu .add(exitltem);*設置主菜*men uBar.add(youXiMe nu); men uBar.add( nan DuMe nu); men uBar.add(fe nShuMe nu);men uBar.add(gua nYuMenu);監聽注
10、冊*zuoZheltem.addActionListener(this );kaiShiYouXi.addActionListener(this );exitltem.addActionListener(this );addKeyListener(this );fenShultem.addActionListener(this );加快捷鍵*keyOpenCTRL_DOWN_M)A; SKkeyExitCTRL_DOWN_M)A; SKKeyStrokeKeyStroke. getKeyStroke ('O',InputEvent. kaiShiYouXi.setAcceler
11、ator(keyOpen);KeyStrokeKeyStroke. getKeyStroke ('X',InputEvent.exitItem.setAccelerator(keyExit);設置框架*setJMenuBar(menuBar); setTitle("貪吃蛇 ");setResizable( false ); setBounds(300,200,400,400); validate();setDefaultCloseOperation( EXIT_ON_CLOS);E public static void main(String args)ne
12、wTanChiShe(); 菜單監聽*public void actionPerformed(ActionEvent e) if (e.getSource()=kaiShiYouXi)length = 6;life = 0;foods = 0;if (she= null )she= newThread( this );she.start();else if (she!= null )she= null ;she= newThread( this );she.start();if (e.getSource()=exitItem)System. exit (0);if (e.getSource()
13、=zuoZheItem)JOptionPane.showMessageDialog( this , " 梁瀟 "+"nn");if (e.getSource()=fenShuItem)JOptionPane. showMessageDialog( this ," 最高記錄為 "+fenshu+""); /*檢查一下 *public void check() isDead();if (she!= null )if (growth=0)reform();elseupgrowth();if (x=objectX&
14、&y=objectY)object=0;growth=1; toolkit.beep();產生食物坐標*if (object=0)object=1;objectX=( int )Math. floor (Math. random()*39)*10;objectY=( int )Math. floor (Math. random()*29)*10+50; this .repaint();void isDead()if (z=4) x=x+10;else if (z=3)x=x-10;else if (z=2)y=y+10;else if (z=1)y=y-10;if (x<0|x&
15、gt;390|y<50|y>390)she= null ;for (i=1;i<length;i+)if (mi=x&&ni=y)she= null ;public void upgrowth()if (length<50)length+;growth-; time=time-10; reform();life+=100;if (fenshu<life)fenshu = life;foods+;public void reform()for (i=length-1;i>0;i-)mi=mi-1; ni=ni-1;if (z=4)m0=m0+1
16、0;if (z=3) m0=m0-10;if (z=2) n0=n0+10;if (z=1) n0=n0-10;public void keyPressed(KeyEvent e)if (she!= null )if (e.getKeyCode()=KeyEvent. VK_UP)if (z!=2)z=1; check();else if (e.getKeyCode()=KeyEvent. VK_DOW) Nif (z!=1)z=2;check();else if (e.getKeyCode()=KeyEvent. VK_LEFT)if (z!=4)z=3;check();else if (e
17、.getKeyCode()=KeyEvent. VK_RIGH)Tif (z!=3)z=4;check();public void keyReleased(KeyEvent e)/TODO自動生成方法存根public void keyTyped(KeyEvent e)/TODO自動生成方法存根public void paint(Graphics g)/* 畫圖 * g.setColor(Color. DARK_GR)A;Y g.fillRect(0,50,400,400);g.setColor(Color. pink );for (i=0;i<=length-1;i+)g.fillRect(mi,ni,10,10);g.setColor(Color.green );g.fillRect(objectX,objectY,10,10);g.setColor(Color. white );g.drawString(" 當前 分數 "+ this .life,6,60);g.drawString(" 當前已吃食物數 "+ this
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版板材家居定制加工合同范本
- 2025版消防應急預案編制與演練補充協議合同
- 二零二五年度企業搬遷合同范本
- 2025版邊坡工程施工質量保證金合同范本
- 2025版賓館客房承包運營管理服務合同
- 2025版工業廠房買賣合同書(含技術支持)
- 二零二五年度煤炭資源整合承包合同
- 2025版標準土地承包擔保合同規范
- 家政合伙協議書范本
- 2025版航空航天發動機研發成果保密與出口許可協議
- 成都國資委采購管理辦法
- 提高情商的培訓課件
- JJG 597-2025交流電能表檢定裝置檢定規程
- 2025年廣州市中考物理試題(含答案)
- 2024年漳州市常山開發區招聘筆試真題
- 服務外包合同服務外包協議
- 定額〔2025〕1號文-關于發布2018版電力建設工程概預算定額2024年度價格水平調整的通知
- 2024年反洗錢知識競賽參考題庫400題(含答案)
- 探究影響空氣阻力的因素
- hs編碼對照表.xls
- 《普通混凝土配合比設計規程》JGJ55-2011
評論
0/150
提交評論