資源描述:
《貪吃蛇java課程設(shè)計(jì)--貪吃蛇程序設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、課程設(shè)計(jì)說明書NO.1貪吃蛇程序設(shè)計(jì)1.程序設(shè)計(jì)的目的Java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)ο?、跨平臺(tái)、分布應(yīng)用等特點(diǎn)。面向?qū)ο蟮拈_發(fā)方法是當(dāng)今世界最流行的開發(fā)方法,它不僅具有更貼近自然的語義,而且有利于軟件的維護(hù)和繼承。為了對所學(xué)的課程進(jìn)行加深理解,熟練的掌握J(rèn)AVA的語法與語句,對其進(jìn)行應(yīng)用。通過此次課程設(shè)計(jì),鞏固所學(xué)Java語言基本知識(shí),增進(jìn)Java語言編輯基本功,掌握J(rèn)DK、JCreator等開發(fā)工具的運(yùn)用,拓寬常用類庫的應(yīng)用。為了進(jìn)一步鞏固課堂上所學(xué)到的知識(shí),深刻把握J(rèn)ava語言的重要概念及其面向?qū)ο蟮奶匦?,鍛煉我們熟練的?yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計(jì)方法解決實(shí)
2、際問題的能力。使我們通過進(jìn)行課程設(shè)計(jì),把所學(xué)課程及相關(guān)知識(shí)加以融會(huì)貫通,全面掌握J(rèn)ava語言的編程思想及面向?qū)ο蟪绦蛟O(shè)計(jì)的方法,為今后從事實(shí)際工作打下堅(jiān)實(shí)的基礎(chǔ)。通過課程設(shè)計(jì)來對JAVA語言有更深的了解,以及應(yīng)用。2.設(shè)計(jì)方案論證2.1系統(tǒng)模塊圖如圖1所示圖1系統(tǒng)模塊圖沈陽大學(xué)課程設(shè)計(jì)說明書NO.22.2主要部分流程圖如圖2所示:圖2主要流程圖沈陽大學(xué)課程設(shè)計(jì)說明書NO.32.3設(shè)計(jì)思路及具體實(shí)現(xiàn)方法2.3.1產(chǎn)生一個(gè)窗口(1)定義一個(gè)框架,確定大小。其大小使600,400;(2)定義一個(gè)貪吃蛇的類,確定其大小比例;(3)在窗口上方定義一個(gè)Score得分;(4)在窗口的下方定義
3、各按鈕的位置。2.3.2使貪吃蛇運(yùn)動(dòng)起來通過函數(shù)的調(diào)用,使貪吃蛇運(yùn)動(dòng)起來,用按鍵來調(diào)節(jié)貪吃蛇的運(yùn)動(dòng)方向,運(yùn)動(dòng)的速度。2.3.3定義各功能鍵的作用(1)PageUp使貪吃蛇加速,減速。并確定其按鍵位置;(2)PageDown使貪吃蛇減速。并確定其按鍵位置;(2)ENTER,R,S重新開始游戲,界面回到開始界面;(3)SPACE,P暫停游戲。2.3.4使貪吃蛇聽指揮(1)加鍵盤監(jiān)聽器類;(2)添加鍵盤監(jiān)聽器;(3)定義其按鍵上,下,左,右;(4)針對不同的鍵改變貪吃蛇的位置,與重畫線程結(jié)合產(chǎn)生不同方向運(yùn)動(dòng)。通過上下左右來調(diào)節(jié)。2.3.5進(jìn)行貪吃蛇類的確定(1)定義背景的顏色為白色;
4、(2)定義貪吃蛇的顏色為黑色;(3)定義食物的顏色為紅色。2.3.6食物出現(xiàn)的位置通過隨機(jī)函數(shù)調(diào)用,實(shí)現(xiàn)食物的出現(xiàn),當(dāng)貪吃蛇吃完一各食物,隨即再生成一個(gè)食物。2.3.7貪吃蛇身增加一節(jié)運(yùn)用for函數(shù)實(shí)現(xiàn),當(dāng)貪吃蛇每吃到食物,貪吃蛇蛇身就增加一節(jié),然后在框架中又重新出現(xiàn)新的食物。2.3.8得分增加當(dāng)貪吃蛇每吃到一塊食物,貪吃蛇蛇身就增加一節(jié),分?jǐn)?shù)就有次序的增加。在框架的上方有顯示。2.3.9貪吃蛇死亡(1)當(dāng)貪吃蛇撞到框架或自身的時(shí)候,則貪吃蛇死亡。然后彈處一個(gè)對話框,顯示youfailed。(2)如果想繼續(xù)游戲,點(diǎn)擊“確定”,再按ENTER,R,S重新開始游戲,界面回到開始界面
5、。2.3.10游戲結(jié)束顯示youfailed,你取消對話框即退出了貪吃蛇游戲。沈陽大學(xué)課程設(shè)計(jì)說明書NO.42.4設(shè)計(jì)的源代碼importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;publicclassGreedSnakeimplementsKeyListener{JFramemainFrame;CanvaspaintCanvas;JLabellabelScore;SnakeModelsnakeModel=null;publicstaticfinalintcanvasWidth
6、=600;publicstaticfinalintcanvasHeight=400;publicstaticfinalintnodeWidth=10;publicstaticfinalintnodeHeight=10;publicGreedSnake(){mainFrame=newJFrame("GreedSnake");Containercp=mainFrame.getContentPane();labelScore=newJLabel("Score:");cp.add(labelScore,BorderLayout.NORTH);paintCanvas=newCanvas(
7、);paintCanvas.setSize(canvasWidth+1,canvasHeight+1);paintCanvas.addKeyListener(this);cp.add(paintCanvas,BorderLayout.CENTER);JPanelpanelButtom=newJPanel();panelButtom.setLayout(newBorderLayout());JLabellabelHelp;labelHelp=newJLabel("PageUp,PageDown