女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用C語言實現貪吃蛇游戲項目

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 作者:C語言編程學習基地 ? 2021-11-09 16:38 ? 次閱讀

這篇文章主要為大家詳細介紹了C語言實現——《貪吃蛇項目》,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下!

本項目主要用到了C語言的循環,函數,指針,結構體,枚舉,聯合,文件操作,簡單的數據結構,并且對邏輯也是有一定的要求,但是這些在我們項目源碼里面都會有注釋,大家到時候學習的時候千萬不要忽略注釋,注釋可以更好地幫你理解代碼,尤其是C語言初學者。

本項目編譯環境:VS2019/VS2013;

插件:圖形庫插件easyX;

效果圖演示:

本案例配套學習教程:精講貪吃蛇——嗶哩嗶哩

源代碼示例:

#include#include//包含easyx圖形庫,可以使用給我們提供的一些函數,繪圖,貼圖#include#define WIN_WIDTH 640#define WIN_HEIGHT 480#define MAX_SNAKE 500 //蛇的最大節數
//枚舉enum DIR //枚舉蛇的方向{  UP,  DOWN,  LEFT,  RIGHT,};struct Food //食物{  int x;  int y;  DWORD color;  bool flag;//是否被吃掉,是否要重新生成食物}food;struct Pos{  int x;  int y;  DWORD color;};struct Snake//蛇的結構體{  int num;//當前節數  int dir;//蛇的方向  int score;//分數  int size;//蛇的寬和高  int speed;//蛇的移動速度  //表示每一節蛇的坐標 數組  struct Pos coor[MAX_SNAKE];}snake;void GameInit(){  //設置隨機數種子  srand(GetTickCount());  snake.num = 3;  snake.dir = RIGHT;  snake.score = 0;  snake.size = 10;  snake.speed = 10;  snake.coor[2].x = 0;  snake.coor[2].y = 0;  snake.coor[2].color = RGB(rand() % 256, rand() % 256, rand() % 256);//隨機生成三個數,用三原色表示顏色  snake.coor[1].x = 10;  snake.coor[1].y = 0;  snake.coor[1].color = RGB(rand() % 256, rand() % 256, rand() % 256);//隨機生成三個數,用三原色表示顏色  snake.coor[0].x = 20;  snake.coor[0].y = 0;  snake.coor[0].color = RGB(rand() % 256, rand() % 256, rand() % 256);//隨機生成三個數,用三原色表示顏色  //初始化食物  food.x = rand() % (WIN_WIDTH/10)*10;//1*10  10 20 30 40 50 60   food.y = rand() % (WIN_HEIGHT/10)*10;  food.color = RGB(rand() % 256, rand() % 256, rand() % 256);//隨機生成三個數,用三原色表示顏色  food.flag = true;}void GameDraw(){  cleardevice();
  for (int i = 0; i < snake.num; i++)  {    //設置填充顏色    setfillcolor(snake.coor[i].color);    //畫矩形    fillrectangle(snake.coor[i].x, snake.coor[i].y, snake.coor[i].x + 10, snake.coor[i].y + 10);  }  //繪制食物  //solidcircle(food.x,food.y,5)  if (food.flag)  {    setfillcolor(food.color);    solidellipse(food.x, food.y, food.x + 10, food.y + 10);  }  //繪制分數    //先把整數轉成字符串  char temp[20] = " ";  sprintf(temp, "分數:%d", snake.score);  outtextxy(10,10,temp);//如果報錯  “outtextxy”: 2 個重載中沒有一個可以轉換所有參數類型  一定是字符集問題  /*怎么修改字符集呢?三種方法    
  */
}void GameMove(){  for (int i = snake.num-1; i >0; i--)  {    snake.coor[i].x = snake.coor[i - 1].x;    snake.coor[i].y = snake.coor[i - 1].y;  }  switch(snake.dir)  {  case UP:    snake.coor[0].y -= snake.speed;    if (snake.coor[0].y < 0)    {      snake.coor[0].y = WIN_HEIGHT;    }    break;  case DOWN:    snake.coor[0].y += snake.speed;    if (snake.coor[0].y > WIN_HEIGHT)    {      snake.coor[0].y = 0;    }    break;  case LEFT:    snake.coor[0].x -= snake.speed;    if (snake.coor[0].x < 0)    {      snake.coor[0].x = WIN_WIDTH;    }    break;  case RIGHT:    snake.coor[0].x += snake.speed;    if (snake.coor[0].x > WIN_WIDTH)    {      snake.coor[0].x = 0;    }    break;  }}void GameControl(){  //獲取鍵盤輸入,_getch(); 不回顯函數,  char key = _getch();  switch (key)  {    case 72:      if (snake.dir!=DOWN)      {        snake.dir = UP;      }        break;    case 80:      if (snake.dir != UP)      {        snake.dir = DOWN;      }      break;    case 75:      if (snake.dir != RIGHT)      {        snake.dir = LEFT;      }      break;    case 77:      if (snake.dir != LEFT)      {        snake.dir = RIGHT;      }      break;  }  printf("%d
", key);}void CreateFood(){  if (!food.flag)  {    food.x = rand() % (WIN_WIDTH / 10) * 10;//1*10  10 20 30 40 50 60     food.y = rand() % (WIN_HEIGHT / 10) * 10;    food.color = RGB(rand() % 256, rand() % 256, rand() % 256);//隨機生成三個數,用三原色表示顏色    food.flag = true;  }}void EatFood(){  if (food.flag && snake.coor[0].x == food.x && snake.coor[0].y == food.y)  {    food.flag = false;    snake.num++;    snake.score += 10;    snake.coor[snake.num-1].color = RGB(rand() % 256, rand() % 256, rand() % 256);//隨機生成三個數,用三原色表示顏色    CreateFood();  }}int main(){  //1,創建窗口,init初始化 graphics 圖形窗口  initgraph(WIN_WIDTH, WIN_HEIGHT, SHOWCONSOLE);  setbkcolor(RGB(207, 214, 229));//設置顏色  cleardevice();//刷新窗口  GameInit();    while (1)  {        GameDraw();    GameMove();    if (_kbhit())    {      GameControl();    }      EatFood();    Sleep(100);    }
  getchar();  return 0;}

整個項目的源碼已經分享,這是一個比較完善的貪吃蛇游戲,從食物隨機出現到分數的顯示都已經實現了,大家在掌握了相應知識后練練手,尤其建議先自己了解其邏輯和思路之后去嘗試寫出來,而不是直接照著代碼抄,這樣對你幫助并不大的!

下一期我們將分享的是能夠自動行動的《進化版貪吃蛇》大家在掌握了這個項目的基礎上只需要加一個功能就好了,怎么樣實現貪吃蛇的自動吃食物,大家也可以自己先去想想試試,每一次的思考就是你進步的過程!

如果學習的過程中有什么問題,以及本項目有什么不懂的地方,都可以來找我交流,我來幫你!

那么今天的分享就到這里了,后續會更新更多精彩項目的,大家要好好學C語言C++喲~

責任編輯:haq
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7630

    瀏覽量

    140789
  • 源代碼
    +關注

    關注

    96

    文章

    2952

    瀏覽量

    68071

原文標題:C語言項目實戰:《貪吃蛇》零基礎項目!源碼 + 注釋解析

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    單片機C語言實例(350+例)

    350+單片機C語言實例! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發表于 05-22 21:47

    深入理解C語言C語言循環控制

    C語言編程中,循環結構是至關重要的,它可以讓程序重復執行特定的代碼塊,從而提高編程效率。然而,為了避免程序進入無限循環,C語言提供了多種循環控制語句,如break、continue和
    的頭像 發表于 04-29 18:49 ?974次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>C</b><b class='flag-5'>語言</b>循環控制

    客廳變游戲室?如何用樹莓派實現 Moonlight 游戲流媒體

    在這個項目中,我們將向您展示如何使用Moonlight將游戲直接流式傳輸到您的RaspberryPi。Moonlight:https://moonlight-stream.org/Moonlight
    的頭像 發表于 03-25 09:37 ?680次閱讀
    客廳變<b class='flag-5'>游戲</b>室?如<b class='flag-5'>何用</b>樹莓派<b class='flag-5'>實現</b> Moonlight <b class='flag-5'>游戲</b>流媒體

    讓人欲罷不能樹莓派貪吃蛇掌機!

    經典游戲貪吃蛇》的掌機,并為其設計了定制的3D打印外殼。這款掌機基于配備RP2350處理器的最新型號RaspberryPiPico2打造。與常規LCD或OLED
    的頭像 發表于 03-25 09:21 ?242次閱讀
    讓人欲罷不能樹莓派<b class='flag-5'>貪吃蛇</b>掌機!

    為什么學了C語言,卻寫不出像樣的項目

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

    單片機C語言編程寶典大全,初學必備【強推下載!】

    資料介紹:包含 1. 51單片機入門教程 2. 初學者適用:單片機C語言實例100例(代碼及釋義) 3. 51單片機C語言快速上手 4. 51單片機
    發表于 03-14 11:03

    限時免積分下載:增量式與位置式PID算法的C語言實現分享

    前面咱們有分享對PID算法離散化和增量式PID算法原理進行來探索,之后又使用Matlab進行了仿真實驗,對PID三個參數又有了更深入的認識,接下來我們來使用C語言進行PID算法實現,并且結合控制電機的
    發表于 03-05 18:32

    EE-188:使用C語言在ADSP-219x DSP上實現中斷驅動系統

    電子發燒友網站提供《EE-188:使用C語言在ADSP-219x DSP上實現中斷驅動系統.pdf》資料免費下載
    發表于 01-15 16:06 ?0次下載
    EE-188:使用<b class='flag-5'>C</b><b class='flag-5'>語言</b>在ADSP-219x DSP上<b class='flag-5'>實現</b>中斷驅動系統

    AKI跨語言調用庫神助攻C/C++代碼遷移至HarmonyOS NEXT

    量;某知名社交電商平臺使用后減少了50%以上跨語言調用接口代碼量;某圖像處理軟件所有C++代碼復用通過AKI來實現。使用AKI后這些項目不僅減少了
    發表于 01-02 17:08

    基于FPGA實現圖像直方圖設計

    直方圖統計的原理 直方圖統計從數學上來說,是對圖像中的像素點進行統計。圖像直方圖統計常用于統計灰度圖像,表示圖像中各個灰度級出現的次數或者概率。統計直方圖的實現采用C/C++或者其他高級語言實
    的頭像 發表于 12-24 10:24 ?701次閱讀
    基于FPGA<b class='flag-5'>實現</b>圖像直方圖設計

    使用C語言實現函數模板

      用C語言能不能實現一個通用的函數,既能完成整數的相加,又能完成浮點數的相加?
    的頭像 發表于 11-09 11:38 ?892次閱讀

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,程序可以發送和接收數據,實現不同計算機之間的通信
    的頭像 發表于 11-01 16:51 ?1119次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當前編程領域中的重要成員,它們各自具有獨特的優勢和特點,適用于不同的應用場景。以下將從語法特性、內存管理、跨平臺性、性能、應用領域等多個方面對C
    的頭像 發表于 10-29 17:31 ?994次閱讀

    何用 S7-200 實現 Modbus 通信?

    電子發燒友網站提供《如何用 S7-200 實現 Modbus 通信?.pdf》資料免費下載
    發表于 09-14 10:22 ?2次下載

    何用java語言開發一套數字化產科系統? 數字化產科管理平臺源碼

    何用java語言開發一套數字化產科系統 數字化產科管理平臺源碼
    的頭像 發表于 07-06 09:38 ?1255次閱讀
    如<b class='flag-5'>何用</b>java<b class='flag-5'>語言</b>開發一套數字化產科系統? 數字化產科管理平臺源碼
    主站蜘蛛池模板: 山东省| 蓬溪县| 安仁县| 富阳市| 鹤岗市| 威远县| 巴青县| 神池县| 哈巴河县| 蓝田县| 台东县| 嘉善县| 札达县| 类乌齐县| 葫芦岛市| 抚顺市| 阿尔山市| 延寿县| 绥芬河市| 内江市| 灵璧县| 海宁市| 三江| 吐鲁番市| 沽源县| 佳木斯市| 石河子市| 波密县| 巩义市| 淮安市| 长海县| 越西县| 健康| 大理市| 鄄城县| 玉环县| 离岛区| 隆昌县| 隆化县| 阳朔县| 康保县|