完整版C語言貪吃蛇設(shè)計思路和代碼詳解_第1頁
完整版C語言貪吃蛇設(shè)計思路和代碼詳解_第2頁
完整版C語言貪吃蛇設(shè)計思路和代碼詳解_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、到了本章,你已經(jīng)學(xué)完了大部分c語言的基礎(chǔ)知識,詳細(xì)講解貪吃蛇代碼的條件就具備了。本教程教你編寫的貪吃蛇不依賴tc環(huán)境,不依賴任何第三方庫,可以在vc 6.0、vs等常見ide中編譯通過,請看下圖:更多效果圖請查看:游戲初始化、游戲進(jìn)行中、游戲結(jié)束。請大家先把貪吃蛇的源碼下載下來瀏覽一下,我們再具體分析,這樣將會有更好的效果。貪吃蛇源代碼下載: 提取密碼:81qm貪吃蛇設(shè)計思路上圖中的紅色空心方框()表示邊框,是貪吃蛇的邊界,貪吃蛇不能碰到它,否則就“死掉”,游戲結(jié)束。綠色實心方框()表示貪吃蛇的活動范圍,貪吃蛇可以自由移動,食物(蘋果)也會隨機出現(xiàn)在這個區(qū)域。我們不妨將貪吃蛇的活動范圍稱為“貪

2、吃蛇地圖”,而加上邊框就稱為“全局地圖”。我們需要記錄地圖中每一個節(jié)點的信息,包括:位置:也就是第幾行幾列;類型:這個節(jié)點出現(xiàn)的是貪吃蛇、食物、邊框,還是什么都沒有(綠色的背景)。索引:也就是數(shù)組下標(biāo),稍后會說明是什么意思。所以需要定義一個結(jié)構(gòu)體二維數(shù)組:structchar type;int index;globalmapmaxwidthmaxheight;用一維下標(biāo)和二維下標(biāo)表示位置;用 type 表示類型,不同的類型用不同的數(shù)字代表;用 index 表示索引。直觀上講,應(yīng)該將 type 定義為int類型,不過int占用四個字節(jié),而節(jié)點類型的取值范圍非常有限,一個字節(jié)就足夠了,所以為了節(jié)省

3、內(nèi)存才定義為char類型。同時,再建立一個足夠大的一維數(shù)組,讓貪吃蛇在數(shù)組內(nèi)活動:structint x;int y; snakemap (maxwidth-2)*(maxheight-2) x、y 表示行和列,也就是 globalmap 數(shù)組的兩個下標(biāo)。globalmap 數(shù)組中的索引 index 就是 snakemap 數(shù)組的下標(biāo)。globalmap 表示了所有節(jié)點的信息,而 snakemap 只表示了貪吃蛇的活動區(qū)域。通過 snakemap 可以定位 globalmap 中的元素,反過來通過 globalmap 也可以找到 snakemap 中的元素。請看下圖:圖1:globalmap 和 snakemap 的初始對應(yīng)關(guān)系貪吃蛇向左移動時,headerindex 指向 404,tailindex指向 406。為什么設(shè)計的這么晦澀和復(fù)雜呢?因為這樣設(shè)計有以下幾個好處:貪吃蛇移動時不用處理所有節(jié)點,只要添加蛇頭、刪除蛇尾、重建 globalmap 和 snakemap 的對應(yīng)關(guān)系就可以;隨機生成食物一次就可以成功,不用擔(dān)心食物會占用邊框或貪吃蛇的位置;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論