資源描述:
《貪食蛇課程設計課題報告》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、貪吃蛇游戲C程序設計報告目錄一.設計要求2二.設計的作用、目的2三.課題分析21.貪吃蛇游戲功能分析22.游戲界面分析33.設計思路分析3四.設計的具體實現(xiàn)31.系統(tǒng)組成模塊結(jié)構及功能3(1)函數(shù)定義3(2)主函數(shù)main()4(3)畫界面函數(shù)DrawK()5(4)游戲具體過程函數(shù)GamePlay()6(5)游戲結(jié)束函數(shù)GameOver()92.系統(tǒng)程序結(jié)構及流程圖103.重要函數(shù)介紹124.程序代碼編寫及注釋145.軟件調(diào)試問題分析及解決方法206.軟件運行結(jié)果20五.心得體會及建議22六.參考文
2、獻2323貪吃蛇游戲C程序設計報告貪吃蛇游戲C程序設計報告一.設計要求通過游戲程序設計,提高編程興趣與編程思路,鞏固C語言中所學的知識,合理的運用資料,實現(xiàn)理論與實際相結(jié)合。(1).收集資料,分析課題,分解問題,形成總體設計思路;(2).深入分析各個小問題,列出大綱,編寫各部分程序模塊;(3).對于設計中用到的關鍵函數(shù),要學會通過查資料,弄懂其用法,要聯(lián)系問題進行具體介紹;(4).上機調(diào)試,查錯,逐步分析不能正常運行的原因,確保所設計的程序正確,并且能正常運行;(5).完成課程設計報告,并進行答辯。
3、二.設計的作用、目的C語言是一種易學易懂的通用程序設計語言,由于它具有功能性強,運用簡潔,靈活兼有高級語言與低級語言的優(yōu)點,以及“目標程序效率高”可移植性和能在各種系統(tǒng)上普遍實現(xiàn)等特點使它成為當今世界上的主流程序設計語言之一,同時被選作目前全世界廣泛應用,同時也是大學生必修的科目。作為當代的大學生要很好的利用它,學好一門設計語言,實現(xiàn)學以至用。制作C程序報告,是為了鞏固和加深對C語言課程的基本知識的理解和掌握,并且能夠掌握C語言編程和程序調(diào)試的基本技能。通過游戲程序的設計訓練和提高學生的基本技能,掌
4、握字符串的表示方法和字符串函數(shù)的功能、TurboC圖形操作的基本知識、鍵盤上特殊鍵的獲取以及圖形方式下光標的顯示,提高編程興趣與編程水平,學會如何正確的書寫程序設計說明文檔,提高運用C語言解決實際問題的能力,鞏固C語言語法規(guī)則的理解和掌握,學會通過源程序?qū)懗隽鞒虉D,提高自學以及查閱資料的能力。三.課題分析1.貪吃蛇游戲功能分析C語言是一種中性化的語言,用C語言來編寫程序?qū)崿F(xiàn)貪吃蛇游戲,能有效反映本有本游戲的基本特點。23貪吃蛇游戲C程序設計報告編寫C語言程序?qū)崿F(xiàn)貪吃蛇游戲,貪吃蛇游戲是一個深受人們喜
5、歡的游戲:一條蛇在密閉的圍墻內(nèi),在圍墻內(nèi)隨機出現(xiàn)一個食物,通過鍵盤上的四個光標鍵控制蛇向上下左右四個方向移動,蛇頭撞到食物,則表示食物被吃掉,這時蛇的身體長一節(jié),同時計10分;接著又出現(xiàn)食物,等待被蛇吃掉,如果蛇在移動過程中,撞到墻壁或身體交叉(蛇頭撞到自己的身體)游戲結(jié)束。2.游戲界面分析程序運行時邊框表示圍墻,紅色矩形塊代表蛇,黃色小方塊代表食物。3.設計思路分析這個程序的關鍵點是表示蛇的圖形以及蛇的移動。用一個小矩形塊表示蛇的一節(jié)身體,身體每長一節(jié),增加一個矩形塊,蛇頭用兩節(jié)表示。移動從蛇頭開
6、始,所以蛇不能向相反方向移動,也就是蛇尾不能改作蛇頭。如果不按任何鍵,蛇自行在當前方向上前移,當游戲者按了有效的方向鍵后,蛇頭朝著指定的方向移動,一步移動一節(jié)身體,所以當按了有效的方向鍵后,先確定蛇頭的位置,然后蛇身體隨著蛇頭的方向移動,圖形的實現(xiàn)是從蛇頭的新位置開始畫出蛇,這時,由于沒有清屏的原因,原來蛇的位置和新蛇的位置差一個單位,所以看起來蛇會多一節(jié)身體,所以將蛇的最后一節(jié)用背景色來覆蓋。食物的出現(xiàn)和消失是以畫矩形塊和覆蓋矩形塊來表示的四.設計的具體實現(xiàn)1.系統(tǒng)組成模塊結(jié)構及功能本貪吃蛇程序包
7、括以下主要的模塊:(1)函數(shù)定義函數(shù)定義是對各個基礎函數(shù)的定義,并且設置需要運用的信息,便于調(diào)用#defineN200#include/*圖形頭文件*/#include/*包含rand等函數(shù)*/#include/*包含bios函數(shù)*/23貪吃蛇游戲C程序設計報告#defineLEFT0x4b00/*光標左鍵值*/#defineRIGHT0x4d00/*光標右鍵值*/#defineDOWN0x5000/*光標下鍵值*/#defineUP0x48
8、00/*光標上鍵值*/#defineESC0x011b/*ESC的ASCII碼*/inti,key;/*圖形坐標變量及按鍵變量*/intscore=0;/*得分*/intgamespeed=10000;/*游戲速度自己調(diào)整*/structFood{intx;/*食物的橫坐標*/inty;/*食物的縱坐標*/intyes;/*判斷是否要出現(xiàn)食物的變量*/}food;/*食物的結(jié)構體*/structSnake{intx[];/*蛇的橫坐標*/inty[];/*蛇的縱坐標*