国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用C語(yǔ)言實(shí)現(xiàn)推箱子游戲項(xiàng)目

C語(yǔ)言編程學(xué)習(xí)基地 ? 來(lái)源:C語(yǔ)言編程學(xué)習(xí)基地 ? 作者:C語(yǔ)言編程學(xué)習(xí)基地 ? 2021-11-09 16:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)——《推箱子項(xiàng)目》,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下!

本項(xiàng)目結(jié)合了分支,循環(huán),數(shù)組的結(jié)合,并且對(duì)邏輯也是有一定的要求,但是這些在我們項(xiàng)目源碼里面都會(huì)有注釋,大家到時(shí)候?qū)W習(xí)的時(shí)候千萬(wàn)不要忽略注釋,注釋可以更好地幫你理解代碼,尤其是C語(yǔ)言初學(xué)者。

本項(xiàng)目編譯環(huán)境:VS2019/VS2013;

插件:圖形庫(kù)插件easyX;

源代碼示例

1.頭文件

#include#include#include  //easyX圖形庫(kù)頭文件#include

2.關(guān)卡設(shè)置(這里我們定義一個(gè)三維數(shù)組,三維數(shù)組大家可以理解為多個(gè)二維數(shù)組)

int cas = 0;IMAGE img0, img1, img2, img3, img4, img5;int map[3][8][8] ={0, 0, 1, 1, 1, 0, 0, 0,0, 0, 1, 3, 1, 0, 0, 0,0, 0, 1, 0, 1, 1, 1, 1,1, 1, 1, 4, 0, 4, 3, 1,1, 3, 0, 4, 5, 1, 1, 1,1, 1, 1, 1, 4, 1, 0, 0,0, 0, 0, 1, 3, 1, 0, 0,0, 0, 0, 1, 1, 1, 0, 0,0, 0, 1, 1, 1, 0, 0, 0,0, 0, 1, 3, 1, 0, 0, 0,0, 0, 1, 0, 1, 1, 1, 1,1, 1, 1, 4, 0, 4, 3, 1,1, 3, 0, 4, 5, 1, 1, 1,1, 1, 1, 1, 4, 1, 0, 0,0, 0, 0, 1, 3, 1, 0, 0,0, 0, 0, 1, 1, 1, 0, 0,0, 0, 1, 1, 1, 0, 0, 0,0, 0, 1, 3, 1, 0, 0, 0,0, 0, 1, 0, 1, 1, 1, 1,1, 1, 1, 4, 0, 4, 3, 1,1, 3, 0, 4, 5, 1, 1, 1,1, 1, 1, 1, 4, 1, 0, 0,0, 0, 0, 1, 3, 1, 0, 0,0, 0, 0, 1, 1, 1, 0, 0,};

3.繪制推箱子地圖

void drawmap(){for (int i = 0; i < 8; i++){for (int j = 0; j < 8; j++){int x = j * 64;int y = i * 64;switch (map[cas][i][j]){case 0:  //空地putimage(x, y, &img0);//printf("  ");break;case 1:  //墻putimage(x, y, &img1);//printf("█");break;case 3:  //目的地:籃筐putimage(x, y, &img2);//printf("☆");break;case 4:  //箱子:籃球putimage(x, y, &img3);//printf("★");break;case 5:  //人:CXKcase 8:putimage(x, y, &img4);//printf("人");break;case 7:  //把箱子推進(jìn)目的地:雞putimage(x, y, &img5);//printf("⊙");break;}}printf("
");}}

4.游戲過(guò)程(這部分是整個(gè)游戲的核心部分,也是最難理解的部分,大家要仔細(xì)解讀)

void playGame(){//按鍵操作:游戲過(guò)程//找人:找CXK:遍歷二維數(shù)組--->元素= 5||8int i, j;for (i = 0; i < 8; i++){for (j = 0; j < 8; j++){//找人if (map[cas][i][j] == 5 || map[cas][i][j] == 8){break;//break只能跳出一層循環(huán)}}//找人if (map[cas][i][j] == 5 || map[cas][i][j] == 8){break;//break只能跳出一層循環(huán)}}//已經(jīng)找到人了//通過(guò)鍵盤操作人物char userKey = _getch();switch (userKey){//那幾個(gè)鍵移動(dòng):wsad 箭頭:小鍵盤 鍵碼值:72 80 75 77case 'w':case 'W':case 72://移動(dòng)的原理:改變二維數(shù)組元素的值//移動(dòng)的步驟://1.先讓人移動(dòng)  map[cas][i-1][j]=0||map[cas][i-1][j]=3if (map[cas][i - 1][j] == 0 || map[cas][i - 1][j] == 3){//人移動(dòng)的原理:元素的值map[cas][i][j] -= 5;map[cas][i - 1][j] += 5;}//2.推箱子,讓箱子移動(dòng)//先找到(固定)箱子if (map[cas][i - 1][j] == 4 || map[cas][i - 1][j] == 7){//籃球,箱子移動(dòng)的條件if (map[cas][i - 2][j] == 0 || map[cas][i - 2][j] == 3){//推箱子的原理:移動(dòng)元素值map[cas][i][j] -= 5;map[cas][i - 1][j] += 5;map[cas][i - 1][j] -= 4;map[cas][i - 2][j] += 4;}}break;case 's':case 'S':case 80://1.先讓人移動(dòng)  map[cas][i-1][j]=0||map[cas][i-1][j]=3if (map[cas][i + 1][j] == 0 || map[cas][i + 1][j] == 3){//人移動(dòng)的原理:元素的值map[cas][i][j] -= 5;map[cas][i + 1][j] += 5;}//2.推箱子,讓箱子移動(dòng)//先找到(固定)箱子if (map[cas][i + 1][j] == 4 || map[cas][i + 1][j] == 7){//籃球,箱子移動(dòng)的條件if (map[cas][i + 2][j] == 0 || map[cas][i + 2][j] == 3){//推箱子的原理:移動(dòng)元素值map[cas][i][j] -= 5;map[cas][i + 1][j] += 5;map[cas][i + 1][j] -= 4;map[cas][i + 2][j] += 4;}}break;case 'a':case 'A':case 75://1.先讓人移動(dòng)  map[cas][i-1][j]=0||map[cas][i-1][j]=3if (map[cas][i][j - 1] == 0 || map[cas][i][j - 1] == 3){//人移動(dòng)的原理:元素的值map[cas][i][j] -= 5;map[cas][i][j - 1] += 5;}//2.推箱子,讓箱子移動(dòng)//先找到(固定)箱子if (map[cas][i][j - 1] == 4 || map[cas][i][j - 1] == 7){//籃球,箱子移動(dòng)的條件if (map[cas][i][j - 2] == 0 || map[cas][i][j - 2] == 3){//推箱子的原理:移動(dòng)元素值map[cas][i][j] -= 5;map[cas][i][j - 1] += 5;map[cas][i][j - 1] -= 4;map[cas][i][j - 2] += 4;}}break;case 'd':case 'D':case 77://1.先讓人移動(dòng)  map[cas][i-1][j]=0||map[cas][i-1][j]=3if (map[cas][i][j + 1] == 0 || map[cas][i][j + 1] == 3){//人移動(dòng)的原理:元素的值map[cas][i][j] -= 5;map[cas][i][j + 1] += 5;}//2.推箱子,讓箱子移動(dòng)//先找到(固定)箱子if (map[cas][i][j + 1] == 4 || map[cas][i][j + 1] == 7){//籃球,箱子移動(dòng)的條件if (map[cas][i][j + 2] == 0 || map[cas][i][j + 2] == 3){//推箱子的原理:移動(dòng)元素值map[cas][i][j] -= 5;map[cas][i][j + 1] += 5;map[cas][i][j + 1] -= 4;map[cas][i][j + 2] += 4;}}break;}}int gameOver(){int flag = 0;//遍歷二維數(shù)組元素-->目的地:球框for (int i = 0; i < 8; i++){for (int j = 0; j < 8; j++){if (map[cas][i][j] == 3){flag = 1;}}}return flag;}

5.主函數(shù)部分

int main(){loadimage(&img0, L"0.bmp");  //64*64loadimage(&img1, L"1.bmp");  //64*64loadimage(&img2, L"3.bmp");  //64*64loadimage(&img3, L"4.bmp");  //64*64loadimage(&img4, L"5.bmp");  //64*64loadimage(&img5, L"7.bmp");  //64*64initgraph(64 * 8, 64 * 8);while (1){drawmap();playGame();if (!gameOver()){cas++;if (cas == 3)break;}system("cls");}//initgraph(600,600);//窗口:寬度*高度////貼圖:基本貼圖技術(shù)////1.定義圖片變量//IMAGE img;////2.加載圖片//loadimage(&img, L"timg.jpg", 600, 600);////3.顯示圖片//putimage(0, 0, &img);while (1);  //防止閃屏closegraph();  //關(guān)閉窗口return 0;}

整個(gè)項(xiàng)目的源碼已經(jīng)分享,這是一個(gè)三關(guān)完善的推箱子游戲,大家如果有興趣可以自己去試試做更多的關(guān)卡來(lái)玩!

如果學(xué)習(xí)的過(guò)程中有什么問(wèn)題,以及本項(xiàng)目有什么不懂的地方,都可以來(lái)找我交流,我來(lái)幫你!

那么今天的分享就到這里了,后續(xù)會(huì)更新更多精彩項(xiàng)目的,大家要好好學(xué)C語(yǔ)言C++喲~

寫(xiě)在最后:對(duì)于準(zhǔn)備學(xué)習(xí)C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開(kāi)始!

責(zé)任編輯:haq
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145569
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2953

    瀏覽量

    70306

原文標(biāo)題:C語(yǔ)言項(xiàng)目實(shí)戰(zhàn):《推箱子》零基礎(chǔ)項(xiàng)目!270 行源碼注釋示例

文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    講解C語(yǔ)言代碼的實(shí)現(xiàn)過(guò)程

    重點(diǎn)講解C語(yǔ)言代碼的實(shí)現(xiàn)過(guò)程,算法的C語(yǔ)言實(shí)現(xiàn)過(guò)程具有一般性,通過(guò)PID算法的C
    發(fā)表于 01-21 07:58

    C語(yǔ)言來(lái)實(shí)現(xiàn)萬(wàn)年歷

    C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷程序的代碼如下:#include int year(int y) { if ((y%4==0) (y%100!=0) || y%400==0) return 366
    發(fā)表于 01-16 08:02

    何用軟件實(shí)現(xiàn)系統(tǒng)的復(fù)位?

    看門狗的工作過(guò)程是怎樣的? 如何用軟件實(shí)現(xiàn)系統(tǒng)的復(fù)位?
    發(fā)表于 01-08 06:15

    C語(yǔ)言主要特點(diǎn)

    指針類型數(shù)據(jù),使用十分靈活和多樣化,能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹(shù)、棧等)的運(yùn)算。 4.具有結(jié)構(gòu)化的控制語(yǔ)句。用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。C語(yǔ)言是完全模塊
    發(fā)表于 01-05 07:41

    何用C 語(yǔ)言函數(shù)的返回值?

    基本上,沒(méi)有人會(huì)將大段的C語(yǔ)言代碼全部塞入 main() 函數(shù)。更好的做法是按照復(fù)用率高、耦合性低的原則,盡可能的將代碼拆分不同的功能模塊,并封裝成函數(shù)。 C語(yǔ)言代碼的組合千變?nèi)f化,因
    發(fā)表于 12-25 07:17

    為什么單片機(jī)還在用C語(yǔ)言編程?

    的缺陷 高級(jí)語(yǔ)言存在的目的是可以實(shí)現(xiàn)更為優(yōu)化的算法,更多的是為了方便的執(zhí)行方案,但是,高級(jí)語(yǔ)言對(duì)程序存儲(chǔ)空間的占用要比匯編和C語(yǔ)言多很多。
    發(fā)表于 11-28 07:37

    請(qǐng)問(wèn)如何用C語(yǔ)言列舉當(dāng)前所有網(wǎng)口?

    何用C語(yǔ)言列舉當(dāng)前所有網(wǎng)口?
    發(fā)表于 11-25 07:23

    C語(yǔ)言特性

    數(shù)據(jù),實(shí)現(xiàn)對(duì)設(shè)備的精準(zhǔn)控制,同時(shí)降低功耗,延長(zhǎng)設(shè)備的使用壽命。 2、可移植性:跨平臺(tái)的通行證 C 語(yǔ)言具有良好的可移植性,這意味著用 C 語(yǔ)言
    發(fā)表于 11-24 07:01

    何用FPGA實(shí)現(xiàn)4K視頻的輸入輸出與處理

    游戲、影視和顯示領(lǐng)域,4K 已經(jīng)成為標(biāo)配。而今天,我們就來(lái)聊聊——如何用 FPGA 實(shí)現(xiàn) 4K 視頻的輸入輸出與處理。
    的頭像 發(fā)表于 10-15 10:47 ?2114次閱讀
    如<b class='flag-5'>何用</b>FPGA<b class='flag-5'>實(shí)現(xiàn)</b>4K視頻的輸入輸出與處理

    C++ 與 Python:樹(shù)莓派上哪種語(yǔ)言更優(yōu)?

    Python是樹(shù)莓派上的首選編程語(yǔ)言,我們的大部分教程都使用它。然而,C++在物聯(lián)網(wǎng)項(xiàng)目中同樣廣受歡迎且功能強(qiáng)大。那么,在樹(shù)莓派項(xiàng)目中選擇哪種語(yǔ)言
    的頭像 發(fā)表于 07-24 15:32 ?943次閱讀
    <b class='flag-5'>C</b>++ 與 Python:樹(shù)莓派上哪種<b class='flag-5'>語(yǔ)言</b>更優(yōu)?

    單片機(jī)C語(yǔ)言實(shí)例(350+例)

    350+單片機(jī)C語(yǔ)言實(shí)例! 純分享帖,需要者可點(diǎn)擊附件免費(fèi)獲取完整資料~~~【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問(wèn)題,請(qǐng)第一時(shí)間告知,刪除內(nèi)容!
    發(fā)表于 05-22 21:47

    深入理解C語(yǔ)言C語(yǔ)言循環(huán)控制

    C語(yǔ)言編程中,循環(huán)結(jié)構(gòu)是至關(guān)重要的,它可以讓程序重復(fù)執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進(jìn)入無(wú)限循環(huán),C語(yǔ)言提供了多種循環(huán)控制語(yǔ)句,如break、continue和
    的頭像 發(fā)表于 04-29 18:49 ?2037次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>循環(huán)控制

    客廳變游戲室?如何用樹(shù)莓派實(shí)現(xiàn) Moonlight 游戲流媒體

    在這個(gè)項(xiàng)目中,我們將向您展示如何使用Moonlight將游戲直接流式傳輸?shù)侥腞aspberryPi。Moonlight:https://moonlight-stream.org/Moonlight
    的頭像 發(fā)表于 03-25 09:37 ?1663次閱讀
    客廳變<b class='flag-5'>游戲</b>室?如<b class='flag-5'>何用</b>樹(shù)莓派<b class='flag-5'>實(shí)現(xiàn)</b> Moonlight <b class='flag-5'>游戲</b>流媒體

    為什么學(xué)了C語(yǔ)言,卻寫(xiě)不出像樣的項(xiàng)目

    在學(xué)習(xí)編程的路上,C語(yǔ)言幾乎是每個(gè)程序員的“必修課”。不管你是打算從事嵌入式開(kāi)發(fā)、系統(tǒng)編程,還是想要深入理解操作系統(tǒng)的底層原理,C語(yǔ)言都是一塊重要的基石。然而許多人在學(xué)習(xí)
    的頭像 發(fā)表于 03-14 17:37 ?917次閱讀
    為什么學(xué)了<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>,卻寫(xiě)不出像樣的<b class='flag-5'>項(xiàng)目</b>?

    單片機(jī)C語(yǔ)言編程寶典大全,初學(xué)必備【強(qiáng)推下載!】

    資料介紹:包含 1. 51單片機(jī)入門教程 2. 初學(xué)者適用:?jiǎn)纹瑱C(jī)C語(yǔ)言實(shí)例100例(代碼及釋義) 3. 51單片機(jī)C語(yǔ)言快速上手 4. 51單片機(jī)
    發(fā)表于 03-14 11:03