欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語言實現(xiàn)的貪吃蛇游戲代碼分享

本篇內(nèi)容介紹了“C語言實現(xiàn)的貪吃蛇游戲代碼分享”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)企業(yè)建站,十多年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于網(wǎng)站設(shè)計、網(wǎng)站建設(shè)中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。

方案設(shè)計

首先初始化背景,使用全局二維數(shù)組map[][]表示實體內(nèi)容,設(shè)置邊界條件,即數(shù)組邊界設(shè)置為WALL:

 //初始化墻 for (int i = 0; i < ROW; i++) {        map[i][0] = map[i][COL - 1] =WALL; } for (int j = 0; j < COL; j++) {        map[0][j] = map[ROW - 1][j] =WALL; }

游戲啟動時設(shè)置蛇在map數(shù)組中的位置,用全局一維數(shù)組snake保存蛇位置信息。

C語言實現(xiàn)的貪吃蛇游戲代碼分享

食物設(shè)置

在map數(shù)組內(nèi)找到一格空地放置食物。為了防止每次產(chǎn)生的隨機數(shù)相同,初始化時種子設(shè)置為time,同時這里注意出現(xiàn)死循環(huán)。

voidcreate_food(){     int row, col;     int cnt = 100;     do     {                 cnt--;            row = rand() % (ROW - 1) + 1;            col = rand() % (COL - 1) + 1;     } while (map[row][col] != SPACE&& cnt);     map[row][col] = FOOD;}

蛇移動方案

1、空地

移動方向前方為空地,刪除蛇尾,空地置為蛇頭:

case SPACE:    map[snake[SnakeSize -1].X][snake[SnakeSize - 1].Y] = SPACE; //原蛇尾位置置空    for (int i = SnakeSize - 1; i >0; i--)                                       //蛇尾到蛇頭整體移動一位    {           snake[i] = snake[i - 1];    }    map[snake[0].X][snake[0].Y] =SNAKE;                                         //原蛇頭位置設(shè)置為蛇身    snake[0] = next;                                                                          //下一個位置設(shè)置為蛇頭    map[snake[0].X][snake[0].Y] =HEAD;                                           //更新map    break;

2、食物

更新分?jǐn)?shù)及蛇尺寸信息,下一位置設(shè)置為蛇頭,同時新生成食物。

case FOOD:      for (int i = SnakeSize; i > 0;i--)                                            //蛇尾到蛇頭整體移動一位      {         snake[i] = snake[i - 1];                                                        }      map[snake[0].X][snake[0].Y] =SNAKE;                                         //蛇頭置 蛇      snake[0] = next;                                                                          //將下一個位置賦值給蛇頭      score++;              //分?jǐn)?shù)加一                              SnakeSize++;       //蛇尺寸加一      map[snake[0].X][snake[0].Y] =HEAD;                                           //更新map      create_food();      break;

3、墻/蛇身/蛇頭

下一位置非SPACE時游戲結(jié)束。

方向控制

讀取鍵盤中斷,忽略大小寫,這里注意一點就是蛇往右運動的時候選擇往左是無效操作,即忽略反向運動的命令。

主流程用while(1)死循環(huán):

 while (1) {        t2 = GetTickCount();        DrawMap();        if (kbhit())       //獲取鍵盤敲擊事件        {           ChangeDir();   //根據(jù)輸入字符設(shè)置運動方向           creep();       //根據(jù)下一位置做出決策
          t2 = GetTickCount();           t1 = t2;        }
       if (t2 - t1 > time_interval) //這里是為了保證即使用戶不操作,time_interval超時后蛇同樣能前進一個位置        {           creep();           t1 = t2;        } }

“C語言實現(xiàn)的貪吃蛇游戲代碼分享”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站題目:C語言實現(xiàn)的貪吃蛇游戲代碼分享
文章源于:http://chinadenli.net/article30/jiocso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)微信小程序、ChatGPT全網(wǎng)營銷推廣、品牌網(wǎng)站制作手機網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作