版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2-《C#程序設計及應用教程》課程設計報告設計題目貪吃蛇游戲專業(yè)2011級軟件工程班級2011級軟件工程姓名學號111164015完成日期2013-06-24
目錄1.問題描述………………2.系統(tǒng)設計………………3.數據結構與算法描述…………………4.測試結果與分析………5.總結…………………6.參考文獻………………附錄程序源代碼…………
(報告正文部分):課程設計題目1.問題描述我設計的的游戲首先在主界面選擇游戲難度,接著進行游戲,在游戲過程中貪吃蛇不停地吃掉隨機產生的食物,蛇身增長,直到蛇觸碰到自己的身軀或邊框,游戲結束特色:1.游戲可以自選難度,且蛇身長每增加2游戲可以儲存游戲分數,你可以查看最高分3游戲過程中蛇的顏色,食物的顏色,分數的顏色,可以不停變換,增加視覺效果2.系統(tǒng)設計2.1設計目標C#課程設計是教學實踐環(huán)節(jié)中一項重要內容,進行此課程設計旨在掌握基礎知識的基礎上,進一步加深對C#的理解和掌握;提高和加強學生的計算機應用及軟件開發(fā)能力,使學生具備初級程序員的基本素質;培養(yǎng)學生獨立分析問題、解決問題、查閱資料以及自學能力,以適應信息管理行業(yè)日新2月異的發(fā)展形勢;本次課程設計是以學生獨立思考解決問題為主,教師指導為輔,結合上機操作,完成指定的任務,做出設計報告。2.2設計思想程序關鍵在于表示蛇的圖形及蛇的移動。用一個小矩形快表示蛇的一節(jié)身體,身體每長一節(jié),增加一個矩形塊。移動時必須從蛇頭開始,所以蛇不可以向相反的方向移動,如果不按任意鍵,蛇自行在當前方向右前移,但按下有效方向鍵后,蛇頭朝該方向移動,一步移動一節(jié)身體,所以按下有效方向鍵后,先確定蛇頭的位置,而后蛇的身體隨蛇頭移動,圖形的實現是從蛇頭新位置開始畫出蛇,這時,由于未清屏的原因,原來的蛇的位置和新的位置差一個單位,所以看起來蛇多一節(jié)身體,所以將蛇的最后節(jié)用背景色覆蓋。食物的出現與消失也是畫矩形塊和覆蓋矩形塊。為了便于理解,定義兩個結構體:食物與蛇,同時還定義了一個隨意的墻。然后利用圖形驅動,,制作美觀的游戲界面,通過隨機函數產生隨機的食物,控制游戲過程食物的出現。定義鍵盤操作控制游戲過程蛇的移動方向,畫出邊界,并判斷游戲是否結束,統(tǒng)計游戲過程中蛇吃的食物數量,計算并輸出游戲成績。2.3系統(tǒng)模塊劃分數據結構與算法描述開始開始界面界面界面界面選擇難度選擇難度蛇運動蛇運動_kb_kbhit()_kb_kbhit()hit()鍵否有按鍵吃掉水果果選擇運動方向 判斷是否有方向鍵按下吃掉水果果選擇運動方向產生水果 產生水果Dead? Dead?退出游戲continue?e退出游戲continue?e4.測試結果與分析(可將測試過程抓圖說明)主菜單游戲設置界面關于貪吃蛇(幫助)5.總結這是我自己去設計一個比較系統(tǒng)的程序,對我們來說也是一個很好的鍛煉。首先,為了能寫出程序,我將以前所學都好好的鞏固了一遍,并且努力的去靈活的運用。很多都清楚起來。其次,平時都是編寫一些單個的操作,這次需要自己寫出一個可以實現幾個功能的系統(tǒng)性的程序,剛開始時是一頭霧水,但經過大家的討論,自己的摸索,也慢慢找到了方法。這讓我體會到,在編寫程序時,不僅需要扎實的知識,還要有細心周到的考慮,同學之間的合作也是很重要的。在這兩個星期里,我覺得發(fā)現了自己還有很多很多的不足,也深刻的體會到了自己還有很多東西要學,而且要真的掌握,還得多用心,多用腦。計算機的確不好學,但只要努力就會有收獲。這次程序是寫了不少,但還是沒能運行出一個正確的結果,不過我相信,經過以后的學習和努力,是肯定能做出一個好的程序來的!6.參考文獻(包括書籍、論文、網絡資料等)[1]馬駿等《C#程序設計及應用教程》.人民郵電出版社附錄程序源代碼(主要部分)usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Threading;namespaceMySnake{publicpartialclassfrmGame:Form{privateControllerobjController;privateSnakeobjSnake;privatestringstrUp="";privatestringstrDown="";privatestringstrLeft="";privatestringstrRight="";privateboolblIsGameStart;publicfrmGame(){InitializeComponent();}privatevoidfrmGame_Load(objectsender,EventArgse){blIsGameStart=false;ConfigobjConfig=newConfig();strUp=objConfig.GetConfigValue("Up");strDown=objConfig.GetConfigValue("Down");strLeft=objConfig.GetConfigValue("Left");strRight=objConfig.GetConfigValue("Right");lblUp.Text=strUp;lblDown.Text=strDown;lblLeft.Text=strLeft;lblRight.Text=strRight;}privatevoidtimer1_Tick(objectsender,EventArgse){objController.Move();if(objController.IsGameOver){timer1.Enabled=false;開a始o?ToolStripMenuItem.Enabled=true;暫Y停a?êToolStripMenuItem.Enabled=false;MessageBox.Show("GameOver");}else{if(objController.IsGetTarget){lblTargetCount.Text=objController.TargetCount.ToString();lblSnakeLength.Text=objSnake.Length.ToString();lblScore.Text=objController.Score.ToString();lblSpeedLevel.Text=objSnake.Speed.ToString();timer1.Interval=245-objSnake.Speed*20;}}}privatevoid暫Y停a?êToolStripMenuItem_Click(objectsender,EventArgse){timer1.Enabled=!timer1.Enabled;}privatevoid退a?出?ToolStripMenuItem_Click(objectsender,EventArgse){this.Close();}privatevoid開a始o?ToolStripMenuItem_Click(objectsender,EventArgse){if(objController!=null){objController.ClearSnake();}initializeSnake();timer1.Enabled=true;開a始o?ToolStripMenuItem.Enabled=false;暫Y停a?êToolStripMenuItem.Enabled=true;結¨¢束o?游??戲?¤ToolStripMenuItem.Enabled=true;}privatevoidinitializeSnake(){objSnake=newSnake();objController=newController(plGame,objSnake);lblDirection.Text="向¨°右?¨°";lblSnakeLength.Text="6";lblTargetCount.Text="0";timer1.Interval=245-objSnake.Speed*20;ConfigobjConfig=newConfig();strUp=objConfig.GetConfigValue("Up");strDown=objConfig.GetConfigValue("Down");strLeft=objConfig.GetConfigValue("Left");strRight=objConfig.GetConfigValue("Right");lblUp.Text=strUp;lblDown.Text=strDown;lblLeft.Text=strLeft;lblRight.Text=strRight;objController.InitializeSnake();blIsGameStart=true;}privatevoid結¨¢束o?游??戲?¤ToolStripMenuItem_Click(objectsender,EventArgse){timer1.Enabled=false;開a始o?ToolStripMenuItem.Enabled=true;暫Y停a?êToolStripMenuItem.Enabled=false;結¨¢束o?游??戲?¤ToolStripMenuItem.Enabled=false;}privatevoidfrmGame_KeyDown(objectsender,KeyEventArgse){stringstrKey=e.KeyData.ToString();if(strKey==strUp){if(objSnake.Direction!="D"){objSnake.Direction="U";lblDirection.Text="向¨°上|?";}}elseif(strKey==strLeft){if(objSnake.Direction!="R"){objSnake.Direction="L";lblDirection.Text="向¨°左á¨?";}}elseif(strKey==strDown){if(objSnake.Direction!="U"){objSnake.Direction="D";lblDirection.Text="向¨°下?";}}elseif(strKey==strRight){if(objSnake.Direction!="L"){objSnake.Direction="R";lblDirection.Text="向¨°右?¨°";}}}privatevoidfrmGame_Paint(objectsender,Pa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《誠信做人到永遠》課件
- 2024-2025學年福建省福州市福清市高二上學期期中考試物理試題(解析版)
- 單位管理制度集合大合集【員工管理】十篇
- 單位管理制度集粹匯編【人員管理篇】十篇
- 單位管理制度匯編大合集【人員管理】十篇
- 單位管理制度合并匯編員工管理篇
- 《網吧消防安全授》課件
- 單位管理制度范文大合集人力資源管理
- 單位管理制度呈現匯編人力資源管理篇十篇
- 60個??嫉慕洕鷮W原理和定律
- 2023-2024學年山東省臨沂市蘭山區(qū)部分學校數學九年級第一學期期末統(tǒng)考模擬試題含解析
- 新譯林版五年級上冊各單元教學反思(文本版本)(共5則)
- 吞咽困難與認知功能的關系探討
- 醫(yī)共體信息系統(tǒng)(HIS)需求說明
- GB/T 13894-2023石油和液體石油產品液位測量手工法
- 胰島素抵抗與神經系統(tǒng)疾病的關系
- CBL胸腔穿刺教學設計
- Z矩陣、Y矩陣、A矩陣、S矩陣、T矩陣定義、推導及轉換公式
- 軟件工程填空題(18套試題與答案)
- 動機式訪談法:改變從激發(fā)內心開始
- 瞬時單位線法計算洪水
評論
0/150
提交評論