




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
JAVA設計貪吃蛇游戲1.課程設計目的《JAVA程序設計》是計算機相關專業的必修專業基礎課程,其實踐性、應用性很強。實踐教學環節是必不可少的一個重要環節。本課程的程序設計專題實際是計算機相關專業學生學習完《JAVA程序設計》課程后,進行的一次全面的綜合訓練,JAVA程序設計的設計目的是加深對理論教學內容的理解和掌握,使學生較系統地掌握程序設計及其在網絡開發中的廣泛應用,基本方法及技巧,為學生綜合運用所學知識,利用軟件工程為基礎進行軟件開發、并在實踐應用方面打下一定基礎。2.設計方案論證2.1設計思路功能要求:1)有一條蛇,在屏幕上爬,用上下左右鍵控制吃豆子,吃得多了,到了一定積分,就能過關。越吃越長,不能碰墻,不能咬自己的尾巴!2)需要設計的類有場地、蛇、豆類等。2.2開發環境2.2.1硬件環境機房計算機一臺2.2.2軟件環境操作系統:WindowsXP開發軟件:ECLIPSE2.3概要設計2.3.1自定義類說明類名:snakegame作用:用來處理當蛇撞到墻或自己的身體時程序的運行繼承的父類:jframe類實現的接口:keylistener2.4詳細設計2.4.1程序概述本程序是一個利用Java應用軟件制作的貪食蛇小游戲。在游戲過程中,用戶通過點擊小鍵盤區的方向鍵來控制蛇的運行方向;當蛇沒有吃到食物且碰到墻壁或自己的身體時游戲結束。2.4.2程序流程圖本次游戲設計的處理流程如圖1所示。鍵盤操作:鍵盤操作:向上左移右移向下沒有吃到食物且蛇碰到邊界單擊“確定”游戲結束進入游戲畫面圖1游戲處理流程圖2.4.3總設計模塊的劃分根據游戲需求中游戲所要實現的功能,整個游戲分為二個模塊進行具體的設計,如圖2所示。貪吃蛇游戲貪吃蛇游戲游戲主界面模塊游戲控制模塊圖2游戲總設計模塊3.設計結果與分析本程序在運行后,能夠正常的相應按鍵事件。游戲重新開始。運行結果如下圖4所示:圖4程序運行圖當蛇沒有吃到食物且碰到邊界或碰撞到自己的身體時,游戲結束,此時得分為0。如果想重新開始即按ENTER或S鍵,運行結果如下圖5所示:圖5程序結束圖
4.心得體會通過這次課程設計,我對這學期所學的JAVA語言程序設計有一個更深刻的了解,將所學的知識應用于實踐,由于所學知識有限,為了使游戲能夠實現自己預先的構想,我通過上網和去圖書館找程序,比較好的流程圖及功能模塊,不斷閱讀修改代碼使程序達到預期所要實現的目標,完成課程設計后,可以感覺到自己對Java程序的又有了新的認識。在做Java設計之前也有做過其他的課程設計,大多規模很小。在數據庫、各種應用軟件和游戲中,我仍覺得對游戲的設計有極大的熱情。因為其各個模塊間的聯系十分緊密,代碼重復執行率高,當經過無數次的調試、修改后,能最終看到成品,有無比自豪的心情。大學期間做過圖書館管理程序等簡單的數據庫管理系統的課程設計,思想大致相似,變化范圍有限,沒有太多自己可發揮的余地。綜合運用以前所學習的知識,設計一個JAVA手機游戲,并能實現以下的功能:游戲暫停、游戲重新開始、游戲的結束。總之,通過本次的課程設計,使我平時學到的理論知識得到了很好地升華,理論與實際得到一次很好的結合,為我今后參加工作打下了堅實的基礎,使我受益匪淺。5.參考文獻[1]辛運偉,饒一梅,馬素霞。Java程序設計(第二版)北京:清華大學出版社2006[6]陸光義,宋現鋒.Java游戲編程導學[M].北京:清華大學出版社.2004.6.附錄packagecom.tanchishe;importjava.awt.event.KeyListener;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.JFrame;publicclassSnakeGameextendsJFrameimplementsKeyListener{ privateintstat=1,direction=0,bodylen=6,headx=7,heady=8, tailx=1,taily=8,tail,foodx,foody,food;//初始化定義變量 publicfinalintEAST=1,WEST=2,SOUTH=3,NORTH=4;//方向常量 int[][]fillblock=newint[20][20];//定義蛇身所占位置 publicSnakeGame(){//構造函數 super("貪吃蛇"); setSize(510,510); setVisible(true);//設定窗口屬性 addKeyListener(this);//添加監聽 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for(inti=1;i<=7;i++)fillblock[i][8]=EAST;//初始化蛇身屬性 direction=EAST;//方向初始化的設置 FoodLocate();//定位食物 while(stat==1){ fillblock[headx][heady]=direction; switch(direction){ case1:headx++;break; case2:headx--;break; case3:heady++;break; case4:heady--;break; }//蛇頭的前進 if(heady>19||headx>19||tailx>19||taily>19||heady<0||headx<0||tailx<0||taily<0||fillblock[headx][heady]!=0){ stat=0; break; }//判斷游戲是否結束 try{ Thread.sleep(150);} catch(InterruptedExceptione){}//延遲 fillblock[headx][heady]=direction; if(headx==foodx&&heady==foody){//吃到食物 FoodLocate(); food=2; try{ Thread.sleep(100);} catch(InterruptedExceptione){}//延遲 } if(food!=0)food--; else{tail=fillblock[tailx][taily]; fillblock[tailx][taily]=0;//蛇尾的消除 switch(tail){ case1:tailx++;break; case2:tailx--;break; case3:taily++;break; case4:taily--;break; }//蛇尾的前進 } repaint(); } if(stat==0) JOptionPane.showMessageDialog(null,"GAMEOVER","GameOver",JOptionPane.INFORMATION_MESSAGE); } publicvoidkeyPressed(KeyEvente){//按鍵響應 intkeyCode=e.getKeyCode(); if(stat==1)switch(keyCode){ caseKeyEvent.VK_UP:if(direction!=SOUTH)direction=NORTH;break; caseKeyEvent.VK_DOWN:if(direction!=NORTH)direction=SOUTH;break; caseKeyEvent.VK_LEFT:if(direction!=EAST)direction=WEST;break; caseKeyEvent.VK_RIGHT:if(direction!=WEST)direction=EAST;break; } } publicvoidkeyReleased(KeyEvente){}//空函數 publicvoidkeyTyped(KeyEvente){}//空函數 publicvoidFoodLocate(){//定位食物坐標 do{ Randomr=newRandom(); foodx=r.nextInt(20); foody=r.nextInt(20); }while(fillblock[foodx][foody]!=0); } publicvoidpaint(Graphicsg){//畫圖 super.paint(g); g.setColor(Color.BLUE); for(inti=0;i<20;i++) for(intj=0;j<20;j++) if(fillblock[i][j]!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海公安學院《書法與鑒賞》2023-2024學年第一學期期末試卷
- 廣東松山職業技術學院《文化遺產創新創業》2023-2024學年第一學期期末試卷
- 河南科技大學《中國現當代文學作品選》2023-2024學年第二學期期末試卷
- 廣州鐵路職業技術學院《應用時間序列》2023-2024學年第二學期期末試卷
- 天津生物工程職業技術學院《表面工程導論》2023-2024學年第二學期期末試卷
- 深圳大學《服務營銷》2023-2024學年第二學期期末試卷
- 日照市五蓮縣2025屆五下數學期末達標檢測模擬試題含答案
- 山東圣翰財貿職業學院《建筑概論》2023-2024學年第一學期期末試卷
- 福建省泉州市泉外、東海、七中學、恒興四校2025年初三摸底聯考物理試題試卷含解析
- 浙江溫州十五校聯盟2025年高三下學期第一次月考(開學考試)歷史試題試卷含解析
- JJF(京) 124-2024 智能電表電動自行車充電辨識模組校準規范
- 2024年河南水利廳廳屬事業單位招考(第二批)易考易錯模擬試題(共500題)試卷后附參考答案
- 2022風電機組吊裝施工組織設計
- 一例下肢靜脈血栓疑難病例護理討論1
- 護士中級職稱競聘述職課件
- 教育部《中小學德育工作指南》-道德修養手冊
- 2023年度學校食堂食品從業人員考核試題(附答案)
- HIV感染產婦分娩母嬰阻斷演練腳本
- “企安安”動火作業報備操作指南
- DL∕T 794-2012 火力發電廠鍋爐化學清洗導則
- 馬克思主義原理一切從實際出發完整模板
評論
0/150
提交評論