歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

計算機科學與技術專業(yè)《綜合課程設計》報告

  • 資源ID:74517840       資源大?。?span id="dr1zlxz" class="font-tahoma">99.50KB        全文頁數(shù):18頁
  • 資源格式: DOC        下載積分:8積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要8積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

計算機科學與技術專業(yè)《綜合課程設計》報告

計算機科學與技術專業(yè)12級綜合課程設計報告題目:貪吃蛇小游戲成員: 姓名 學號 郝興明 201207051 指導教師:王金龍開始日期: 2015 年12月7 日 完成日期: 2016 年01月8 日 2012級綜合課程設計評價表題 目貪吃蛇小游戲指導老師王金龍項 目 內(nèi) 容 簡 介本次綜合課程設計的內(nèi)容為“貪吃蛇”小游戲,游戲操作簡單,設計卻很復雜,主要實現(xiàn)的內(nèi)容為:通過鍵盤控制蛇的移動,判斷蛇是否死亡,以及通過相應按鈕來控制游戲的進程。評價工作量 (飽滿、達到要求、不飽滿);運行效果 (良好、有小問題、錯誤較多);文檔及報告撰寫 (規(guī)范、較規(guī)范、 不規(guī)范、未提交);答辯 (優(yōu)秀、良好、 一般、 較差);團隊分工及協(xié)作 (很好、較好、 一般、 較差)。成績學 號姓 名組內(nèi)分工貢獻排名成 績201207051郝興明程序設計、編寫、測試、報告答辯小組簽字青島理工大學課程設計任務書姓 名 組內(nèi)分工 郝興明 程序設計、編寫、測試、報告 院 (系): 計算機工程 專 業(yè): 計算機科學與技術 任務起至日期: 2015年 12月 7 日 至 2016年 01月 8 日 課程設計題目: 貪吃蛇小游戲 主要內(nèi)容及要求: “貪吃蛇”小游戲主要應實現(xiàn)以下幾個方面的功能:1. 通過方向鍵控制蛇的移動2.蛇吃到食物后身體變長3.食物的隨機產(chǎn)生4.蛇吃到自己身體或墻后死亡5.蛇在移動過程中可以暫停/繼續(xù)6.可手動停止游戲工作計劃安排:2015年12月07日-2015年12月10日 需求分析2015年12月11日-2015年12月15日 概要設計2015年12月16日-2015年12月20日 框架搭建2015年12月21日-2015年12月30日 詳細功能設計2015年12月31日-2016年01月03日 程序測試2016年01月04日-2016年01月05日 書寫報告2016年01月06日 項目答辯第1部分 概述1. 內(nèi)容簡介“貪吃蛇”是一款經(jīng)典的小游戲,以其操作簡單、娛樂性強而廣受歡迎。一條蛇在封閉的圍墻內(nèi)移動,在圍墻內(nèi)隨機出現(xiàn)一個食物,通過鍵盤的方向鍵來控制蛇的移動,當蛇吃到食物后蛇的身體長一節(jié),同時出現(xiàn)一個新的食物等待蛇去吃,如果蛇在移動過程中蛇頭吃到自己身體或者吃到圍墻的石頭,則蛇死亡,游戲結束。作為一個小游戲,設計中必須要考慮人機交互和用戶體驗,因此游戲界面應簡潔直觀,讓用戶可直接了解游戲的操作。“貪吃蛇”的設計對java編程的提高和進階是一次很好的鍛煉機會。本次設計使用java語言,通過GUI編程、線程、事件監(jiān)聽等技術來實現(xiàn)游戲的開發(fā),功能雖然較少,但游戲的基本功能都具備,可正常進行游戲。2. 功能介紹“貪吃蛇”小游戲的設計較復雜,要想實現(xiàn)所有功能需要很高的技術要求和很強的編程能力。由于本人技術能力欠缺,所以只能實現(xiàn)基本的游戲功能,通過畫圖的方法來顯示出蛇的身體,食物的位置和墻的位置。主要操作是通過鍵盤的方向鍵來控制蛇的移動方向,無效方向要忽略;當蛇吃到食物時蛇的身體變長一節(jié),同時產(chǎn)生一個新的食物;蛇吃到自己身體或者吃到石頭時死亡,游戲結束;在游戲控制區(qū)域可通過相應按鈕來控制游戲的運行進度。3. 設計環(huán)境本次游戲設計的環(huán)境及開發(fā)工具如下:運行環(huán)境:Windows 7編程語言:java開發(fā)環(huán)境:eclipse第2部分需求分析1 用戶特點分析游戲開發(fā)成功后,可適用于各類人群使用,所以要求界面簡單,操作方便, 不需要進行專門培訓就可以學會如何操作2.功能需求2.1圖形界面的需求游戲畫布區(qū)主要包括蛇的身體出現(xiàn)的位置,食物隨機出現(xiàn)的位置,墻的固定位置,以及蛇可移動的區(qū)域。游戲控制區(qū)域顯示按鈕及操作提示。2.2屬性需求在可使用性方面,要求各個功能實現(xiàn)簡單,操作方便,系統(tǒng)處理正確;整個系統(tǒng)恢復性能號,鏈接速度快,以確保系統(tǒng)可適用性好。另外,還要求系統(tǒng)的可擴展性、可維護性、可移植性良好。2.3功能模塊需求軟件開發(fā)過程中的功能模塊設計,主要解決實現(xiàn)該游戲需求的程序模塊設計問題。包括如何把該游戲劃分成若干個模塊、決定各個模塊之間的接口、模塊之間穿的的信息,以及模塊結構的設計等。2.3.1游戲功能本游戲主要完成以下幾方面的功能:1) 游戲控制功能2) 界面布局3) 其他輔助功能2.3.2功能模塊劃分根據(jù)游戲需求,整個游戲主要劃分為游戲界面和游戲控制兩個模塊。見圖2.1 。游戲界面是整個游戲的運行區(qū)域,可動態(tài)的觀察游戲過程。游戲控制是用來控制游戲進程的,可以開始游戲,暫停/繼續(xù)游戲,停止游戲。貪吃蛇游戲游戲界面模塊游戲控制模塊圖2.1 游戲模塊劃分第3部分 系統(tǒng)設計1. 系統(tǒng)流程圖系統(tǒng)流程圖是描繪系統(tǒng)物理模型的傳統(tǒng)工具。它的基本思想是用圖形符號描繪系統(tǒng)里面的每個部件,表達信息在各個部件之間流動的情況。開始游戲控制蛇移動身體變長是否吃到自己 是 是 是否吃到食物 否 否 是否撞墻 否游戲結束蛇死亡是圖3.1 系統(tǒng)流程圖2.類模塊設計本次設計遵循MVC設計模式,主要類之間的關系如下:Snake類(蛇類)Game類(主面板)Controller類(控制器)Ground類(墻類)Food類(食物類) 圖3.2 MVC設計模式體現(xiàn)Snake類:設置蛇的屬性,以及蛇的產(chǎn)生、移動、吃食物、死亡等方法。Food類:設置食物的隨機產(chǎn)生和是否被吃掉等方法。Controller類:監(jiān)聽Snake類以及按鍵事件,并進行處理。Game類:用來控制游戲進程和界面的顯示。3.各類的詳細設計表3.1 Snake類成員作用private boolean pause;判斷是否暫停private boolean life;判斷蛇是否死亡private boolean isMoving;判斷蛇是否在移動private LinkedList<Point>body;存放蛇的身體節(jié)點private void init();初始化方法public void move();蛇的移動方法public void drawMe(Graphics g);畫出蛇的身體public void start();讓蛇開始移動public void die();讓蛇死亡表3.2 Food類:Public void newFood(Point p);設置食物產(chǎn)生的位置Public Boolean isSnakeEatFood(Snake snake);判斷蛇是否吃到食物public void drawMe(Graphics g);在畫布上畫出食物表3.3 Ground類:Private int rocks;存放石頭的數(shù)組Public Ground();初始化石頭Public Boolean isSnakeEatRock(Snake snake);判斷是否吃到石頭Public Point getPoint();設置食物產(chǎn)生的位置public void drawMe(Graphics g);在畫布上畫出石頭表3.4 Controller類:Public Controller(Snake snake,Food food,Ground ground,GamePanel gamePanel);初始化控制器類Public void keyPressed(KeyEvent e);監(jiān)聽按鍵事件Public void snakeMoved(Snake snake);監(jiān)聽蛇的移動Public void newGame();創(chuàng)建新游戲Public void setSnake(Snake snake);設置蛇第4部分 系統(tǒng)實現(xiàn)1. 界面展示“貪吃蛇”小游戲適合廣大群體,故界面應以簡潔直觀為主,讓玩家一眼便可了解游戲的操作。具體游戲界面如下:游戲初始化界面圖 4.1 游戲初始化界面游戲開始界面圖 4.2 游戲開始運行界面游戲結束界面圖 4.3 游戲結束界面2.游戲的具體實現(xiàn)代碼2.1游戲畫布區(qū)publicvoid display(Snake snake,Food food,Ground ground)System.out.println("GamePanel's display");this.snake = snake;this.food = food;this.ground = ground;this.repaint();protectedvoid paintComponent(Graphics g)g.setColor(new Color(0xcfcfcf);g.fillRect(0, 0, Global.WIDTH * Global.CELL_SIZE, Global.HEIGHT * Global.CELL_SIZE);if(ground != null && snake != null && food != null)this.ground.drawMe(g);this.snake.drawMe(g);this.food.drawMe(g);2.2控制區(qū)privatestaticfinallongserialVersionUID = 1L;privatefinal JButton button_start = new JButton("開始游戲");privatefinal JButton button_wait = new JButton("暫停游戲");privatefinal JButton button_stop = new JButton("停止游戲");privatefinal JLabel label_tips = new JLabel("方向鍵控制蛇的移動");public GameOptionPanel()super();setLayout(null);setFocusable(false);setVisible(true);button_start.setFont(new Font("楷體", Font.PLAIN, 17);button_wait.setFont(new Font("楷體", Font.PLAIN, 17);button_stop.setFont(new Font("楷體", Font.PLAIN, 17);label_tips.setFont(new Font("楷體", Font.PLAIN, 25);button_start.setFocusable(false);button_wait.setFocusable(false);button_stop.setFocusable(false);label_tips.setFocusable(false);button_start.setBounds(10, 10, 110, 40);button_wait.setBounds(145, 10, 110, 40);button_stop.setBounds(280, 10, 110, 40);label_tips.setBounds(70, 70, 300, 40);add(button_start);add(button_wait);add(button_stop);add(label_tips);public JButton getStartButton()returnbutton_start;public JButton getWaitButton()returnbutton_wait;public JButton getStopButton()returnbutton_stop;public JLabel getTipsLabel()returnlabel_tips;2.3蛇的移動publicvoid move()if(!(oldDirection + newDirection = 0)oldDirection = newDirection;System.out.println("Snake's move");oldTail = body.removeLast();intx = body.getFirst().x;inty = body.getFirst().y;switch(oldDirection)caseUP:y-;if(y < 0)y = Global.HEIGHT -1;break;caseDOWN:y+;if(y = Global.HEIGHT)y = 0;break;caseLEFT:x-;if(x < 0)x = Global.WIDTH - 1;break;caseRIGHT:x+;if(x = Global.WIDTH)x = 0;break;Point newHead = new Point(x,y);body.addFirst(newHead);2.4監(jiān)聽按鍵publicvoid keyPressed(KeyEvent e)if(!snake.isPause()&&snake.isLive()&&snake.isMoving()switch(e.getKeyCode()case KeyEvent.VK_UP:snake.changeDirection(Snake.UP);break;case KeyEvent.VK_DOWN:snake.changeDirection(Snake.DOWN);break;case KeyEvent.VK_LEFT:snake.changeDirection(Snake.LEFT);break;case KeyEvent.VK_RIGHT:snake.changeDirection(Snake.RIGHT);break;2.5畫出蛇的身體publicvoid drawMe(Graphics g)g.setColor(Color.BLUE);for(Point p:body)g.fill3DRect(p.x * Global.CELL_SIZE, p.y * Global.CELL_SIZE, Global.CELL_SIZE, Global.CELL_SIZE, true);2.6隨機產(chǎn)生食物public Point getPoint()Random radom = new Random();intx = 0, y = 0;dox = radom.nextInt(Global.WIDTH);y = radom.nextInt(Global.HEIGHT);while(rocksxy=1);return (new Point(x,y);2.7初始化墻public Ground()for(intx=0;x<Global.WIDTH;x+)rocksx0 = 1;rocksxGlobal.WIDTH-1 = 1;for(inty=0;y<Global.HEIGHT;y+)rocks0y = 1;rocksGlobal.HEIGHT-1y = 1;第5部分 系統(tǒng)測試5.1測試概述進行軟件測試是對系統(tǒng)的性能、完善程度以及安全性進行測試,在現(xiàn)今這個科技發(fā)達的時代,軟件應用于各個領域,如果一個軟件未經(jīng)過細致的系統(tǒng)測試就投入使用,在使用過程中一旦出現(xiàn)問題后果將不堪設想,這不僅僅是對用戶負責,更是對開發(fā)人員自身負責,通過系統(tǒng)測試不斷地發(fā)現(xiàn)問題和解決問題,在以后的工作中就會減小這些漏洞出現(xiàn)的幾率,不斷地完善每一個軟件是每一個軟件開發(fā)人員共同的愿望。所以,進行系統(tǒng)測試是十分必要的。在進行本次游戲設計的過程中,對于軟件的測試一直貫穿始終,對于在開發(fā)過程中的代碼和文檔,以及系統(tǒng)完成后都在進行測試。測試并不僅僅是為了找出錯誤,通過分析錯誤產(chǎn)生的原因和錯誤的發(fā)生趨勢,可以幫助項目管理者發(fā)現(xiàn)當前軟件開發(fā)過程中的缺陷,以便及時改進。測試主要分5種,即單元測試、集成測試、確認測試和白盒測試和黑盒測試。 本次游戲測試主要采用黑盒測試方法,檢查游戲功能是否能實現(xiàn)。5.2 詳細測試5.2.1測試一測試內(nèi)容:是否能正常開始游戲測試方法:點擊開始按鈕預期結果:游戲區(qū)出現(xiàn)蛇、食物和墻,蛇會移動測試結果:和預期一樣,祥見圖5.1圖 5.1 開始按鈕測試5.2.2測試二測試內(nèi)容:是否能暫停/繼續(xù)游戲測試方法:點擊暫停/繼續(xù)按鈕預期結果:點擊暫停后蛇停止移動,按鈕變?yōu)槔^續(xù)游戲,點擊繼續(xù)后沿原方向移動,按鈕變?yōu)闀和S螒颉?測試結果:和預期一樣,祥見圖5.2和圖5.3圖5.2 暫停游戲測試圖5.3 繼續(xù)游戲測試5.2.3測試三測試內(nèi)容:蛇是否能吃食物身體變長測試方法:控制蛇移動去吃食物預期結果:吃食物后蛇身體變長一節(jié),同時產(chǎn)生一個新的食物 測試結果:和預期一樣,祥見圖5.4圖5.4 蛇吃食物測試(蛇身體默認為3節(jié))5.2.4測試四測試內(nèi)容:蛇撞墻是否會死測試方法:控制蛇移動去撞墻預期結果:蛇死亡不再移動,游戲結束 測試結果:和預期一樣,祥見圖5.5圖5.5 蛇撞墻死亡測試5.2.5測試五測試內(nèi)容:蛇吃到自己身體是否會死測試方法:控制蛇移動讓蛇頭吃到自己身體預期結果:蛇死亡不再移動,游戲結束 測試結果:和預期一樣,祥見圖5.6圖5.6 蛇吃到自己身體測試第6部分 系統(tǒng)總結本次課程設計從游戲界面和游戲控制兩方面實現(xiàn)了比較完善的功能,因為本人能力有限,還需要學習的地方很多,所以還是不盡完美,有很多可以優(yōu)化的地方,但游戲的基本功能都很齊全,相比之前做的管理系統(tǒng)類的設計,應該可以說是又上升了一個層次。雖然在設計中遇到了很多困難,比如說為了修改一個小小的bug而花費一整天,重新去學習新的知識,改了一次又一次等等,但是終于功夫不負有心人,游戲的功能都基本上實現(xiàn)了,作為一個學習計算機的人,尤其是一個即將畢業(yè)的大四學生,更需要有堅持不懈的毅力和不斷學習新知識的激情,困難只是我們走向成功的階梯。當你克服一個一個的困難后,會感到滿滿的成就感??傮w來說,這次課設對我自己是一次很好的鍛煉機會,不僅把以前學到的只是溫習了一遍,還學習到了很多新知識,而且還提高了敲代碼的能力。對設計中遇到的問題,通過仔細思考和查閱資料,使得問題得以解決,對自己以后獨立思考解決問題的能力也有很大幫助。參考文獻1李芝興 楊瑞龍. Java程序設計之網(wǎng)絡編程(第2版). 清華大學出版社,2013.72張海藩 牟永敏. 軟件工程導論(第6版). 清華大學出版社,2015.7

注意事項

本文(計算機科學與技術專業(yè)《綜合課程設計》報告)為本站會員(dus****log)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!