C語(yǔ)言作業(yè):如何實(shí)現(xiàn)多關(guān)卡推箱子?詳細(xì)思路分析(有源碼)
話不多說,我們直接進(jìn)入主題:多關(guān)卡推箱子!

沒錯(cuò)就是這么簡(jiǎn)單。
抽象屬性:數(shù)據(jù)設(shè)計(jì)

map[2][7][8]說:首先大家將會(huì)看到三維數(shù)組??!沒聽錯(cuò)就是三維得,不要怕,你要明白得是map[2][7][8]中 [2]是用來表達(dá)關(guān)數(shù)就沒什么問題了哦。
剩下得你就和把他當(dāng)作一個(gè)二維數(shù)組就可以了。
cas說: 我就是控制關(guān)數(shù)得,但是我要從0開始,為啥呢?因?yàn)榈貓D是從0開始得呀
boxSum[2]說:我是用來控制勝負(fù)得,至于我里面得值是沒一關(guān)卡箱子得數(shù)目啊。
資源初始化:繪制地圖
繪制地圖原理: 就是一個(gè)蘿卜一個(gè)坑,在數(shù)組中用特殊得值表示不同得物品,這個(gè)就需要你去玩一遍推箱子了,要非常熟悉熟悉箱子得幾個(gè)狀態(tài)了。
游戲7大狀態(tài)

不知道的可以去玩玩哦
用不同東西表示不同的狀態(tài)
0: 空地 " "
1: 墻 "▆"
3: 目的地 "☆"
4: 箱子 "★"
5:人 "※"
7:/目的(3)和箱子(4)在一起"⊙"
8:人(5)和目的(3)在一起:"※"
遍歷數(shù)組繪制地圖

由于截圖是ps拼接的,截圖姐去不了那么多
用戶處理:按鍵處理
按鍵處理基本框架:選擇結(jié)構(gòu)的使用,對(duì)于用戶按鍵上下左右處理

基本上C語(yǔ)言中甚至是以后用到的按鍵處理基本都是這個(gè)框架
按鍵處理實(shí)質(zhì): 按下方向鍵,根據(jù)數(shù)組的位置去做定位移動(dòng)

移動(dòng)過程在同步數(shù)組下標(biāo)變化
針對(duì)不同情況的不同處理:(以向上為例,其他的根據(jù)對(duì)稱可以求出來)
1.人前面是空地或者目的地

空地的值是0,目的地的是3
2.人前面是箱子,箱子前面是空地或者目的地

就是這么簡(jiǎn)單,其他方向開始你的拷貝把!
收尾工作:勝負(fù)判斷
勝負(fù)判斷:那就很簡(jiǎn)單的了箱子數(shù)目為零就可以了。

就是這么粗暴
主函數(shù),調(diào)用一下即可

完整源碼可以來我粉絲群領(lǐng)取奧~
寫在最后:另外,對(duì)于準(zhǔn)備學(xué)習(xí)C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
編程學(xué)習(xí)書籍分享:

粉絲編程交流:
